C++ 是否可以从.h文件生成dlsym命令?

C++ 是否可以从.h文件生成dlsym命令?,c++,sdl,sdl-2,dlopen,dlsym,C++,Sdl,Sdl 2,Dlopen,Dlsym,已经解决了 不确定我询问的位置是否正确,但是否有人知道基于.h文件生成dlopen和dlsym命令的正确方法 我试图动态加载SDL2——这是一个用C编写的库——但所有用CTAG提取函数列表及其参数的方法似乎都没有效果(必须手动更正3500个函数中240个函数的参数列表并不有趣) CTAG的结果如下所示: extern DECLSPEC int SDLCALL SDL_SetTextureColorMod (SDL_Texture * texture, extern DECLSPEC int SD

已经解决了

不确定我询问的位置是否正确,但是否有人知道基于.h文件生成dlopen和dlsym命令的正确方法

我试图动态加载SDL2——这是一个用C编写的库——但所有用CTAG提取函数列表及其参数的方法似乎都没有效果(必须手动更正3500个函数中240个函数的参数列表并不有趣)

CTAG的结果如下所示:

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,
这:

产生这种结果:

SDL_AddTimer     prototype    93 /usr/include/SDL2/SDL_timer.h extern DECLSPEC SDL_TimerID SDLCALL SDL_AddTimer(Uint32 interval,
注意interval之后缺少的参数。它坏了

我也看到了一个东西,它显然是自动生成的,不是手工制作的

所以。。。有人知道自动生成类似内容的方法吗?特别是SDL2


或者我应该只使用SDL函数,并手动对其进行dlsym?不要问我为什么不愿意只链接而不使用dlopen和dlsym。

我通过使用decltype解决了这个问题

typedef decltype(SDL_RenderDrawRects)* PF_SDL_RenderDrawRects;

这样,我就不需要函数的参数列表了

试试doxygen的xml输出,也许你会得到比ctags更好的结果?我已经尝试过ctags,但结果并不令人满意-一些函数的参数列表因未知原因而被破坏,给我留下了不完整的参数列表-3500个函数中大约有240个遇到了这个问题。我将尝试使用doxygen。您可以使用自动为SDLAPI生成包装器,该包装器将在需要时透明地打开库(或者调用回调来完成)。
SDL_AddTimer     prototype    93 /usr/include/SDL2/SDL_timer.h extern DECLSPEC SDL_TimerID SDLCALL SDL_AddTimer(Uint32 interval,
typedef decltype(SDL_RenderDrawRects)* PF_SDL_RenderDrawRects;