在 SDL2/SDL2_framerate.h 中找到对函数的未定义引用

Undefined references to functions found within SDL2/SDL2_framerate.h

我在编译使用该库的代码时遇到问题。

首先,我有 运行 一个 sudo apt-get install libsdl2-* 并安装了他们能给我的所有东西。

接下来,我手动构建了该死的东西。我在 this url 上在线找到了源代码。我不确定将生成的编译 .so object 放在哪里:

gcc -c -fpic -lSDL2 SDL2_framerate.c -o SDL2_framerate.so

所以我尝试用我生成的共享对象手动编译。运气不好,确实编译了,但是它立即对我造成了分段错误。我尝试在没有 -fpic 的情况下进行编译,但仍然没有成功。

根据 GDB,分段错误是由 SDL_initFramerate 引起的。我假设这是因为它在错误的地方寻找函数,再一次,我完全不确定 确切 这应该去哪里,因为我没能做到找到 libsdl2.so 在我的系统上的位置(或 libsdl2 的某些版本)。

我很茫然,我想使用这个库提供的东西,但似乎库中有错误(或者更可能是用户错误),或者它不完整尚未实施。

我希望有人看到过与此类似的问题,或者更好地了解发生了什么以及如何解决它。

我终于弄清楚我做错了什么。首先,我没有将 FPSmanager 对象传递给正确的函数,这意味着我没有正确使用这些函数。

其次,我发现您必须使用 -SDL2_gfx 链接标志对其进行编译。不确定在哪里或如何在没有反复试验的情况下找出您需要的编译器标志(我确定有更好的方法来做到这一点,我只是没有找到它)。