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