尝试链接到SDL_ttf共享对象文件时g ++中的链接器错误

时间:2014-03-22 00:58:22

标签: c++ compiler-construction g++ dynamic-linking

我正在尝试在Ubuntu环境中使用SDL_ttf开发库。我开始通过以下方式下载开发库:sudo apt-get install libsdl-ttf2.0-dev。 接下来,我在代码中导入了头文件,如下所示:

#include <SDL_ttf.h>

当我使用命令编译时:

g++ -g -I /usr/include/SDL Main.cpp -lSDL -lSDL_image -lSDL_ttf land.cpp PerlinNoise.cpp Util.cpp org.cpp Init.cpp `sdl-config --libs

我得到以下输出:

/tmp/ccpLKljA.o: In function `init()':
/home/zoo/Desktop/World-A/Util.cpp:39: undefined reference to `TTF_Init'
/home/zoo/Desktop/World-A/Util.cpp:42: undefined reference to `TTF_Quit'
/home/zoo/Desktop/World-A/Util.cpp:48: undefined reference to `TTF_OpenFont'
/home/zoo/Desktop/World-A/Util.cpp:52: undefined reference to `TTF_Quit'
collect2: ld returned 1 exit status

我知道这是一个链接器错误,但我不知道该怎么做才能修复它。我知道-lSDL_ttf命令没有做任何事情,因为删除它不会改变任何东西。我试图引用.so文件但是没有改变结果。我通过以下命令执行了此引用:-LlibSDL_ttf-2.0.so.0.6.3。我能够查看.so文件,它确实包含上面列出的命令。

1 个答案:

答案 0 :(得分:1)

您必须在命令行上的库之前放置land.cpp和其余的CPP文件。