УЖЕ РЕШЕНО! Посмотрите результат здесь. эм>
Не уверен, правильно ли я спрашиваю, но кто-нибудь знает правильный способ создания команд dlopen и dlsym на основе файла .h?
Я пытаюсь динамически загрузить SDL2 — библиотеку, написанную на C, — но все методы извлечения списка функций и их аргументов с помощью ctags кажутся бесплодными (необходимость вручную исправлять списки аргументов для 240 функций из 3500 — не весело).
ctags -R -x --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ -f sdl /usr/include/SDL2/
Результаты ctags выглядят так:
extern DECLSPEC int SDLCALL SDL_SetTextureColorMod (SDL_Texture * texture,
extern DECLSPEC int SDLCALL SDL_SetThreadPriority (SDL_ThreadPriority priority);
extern DECLSPEC void SDLCALL SDL_SetWindowBordered (SDL_Window * window,
Этот:
ctags -R -x --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ -f sdl /usr/include/SDL2/ | grep "SDL_AddTimer"
Дает такой результат:
SDL_AddTimer prototype 93 /usr/include/SDL2/SDL_timer.h extern DECLSPEC SDL_TimerID SDLCALL SDL_AddTimer(Uint32 interval,
Обратите внимание на отсутствующие аргументы после интервала. Это сломано.
И я также видел это , и он, по-видимому, создается автоматически, а не вручную.
Итак... кто-нибудь знает какой-либо способ автоматического создания чего-то подобного? Специально для SDL2?
Или я должен просто использовать функции SDL и вручную выполнять их dlsym? Не спрашивайте, почему я не хочу просто ссылаться вместо использования dlopen и dlsym.