关于此问题,有很多类似的主题,但我已经用尽了15个相似主题的所有建议。
在使用SDL库运行教程代码时,IDE抱怨所有与SDL相关的函数都有“未定义的引用”。
场合
架构:64位
IDE:CodeBlocks 16.01
编译器:GNU GCC
我尝试过做什么
1)我告诉编译器在目录下找到头: ..... \ i686-w64-mingw32 \ include \ SDL2使用相对路径
我没有选择\ include NOR我选择了..... \ x86_64-w64-mingw32 \ include \ SDL2
2)我告诉编译器在目录下找到库文件: ..... \ i686-w64-mingw32 \ lib使用相对路径
我没有选择.... \ lib NOR我选择了..... \ x86_64-w64-mingw32 \ lib
3)链接库时,我在目录下包含了四个库 .... \ i686-w64-mingw32 \ lib而不是上面提到的其他目录。
4)图书馆的链接顺序如下:
SDL2main.lib
SDL2.lib
SDL2test.lib
5)我确保main.c的属性是这样的,即检查了编译文件,检查了链接文件,并检查了目标调试和发布中的属性。
构建日志:
-------------- Build:Snake Game中的调试(编译器:GNU GCC编译器)---------------
的mingw32-G ++。exe文件 -L ...... \下载\ SDL2-devel的-2.0.4-MinGW的\ SDL2-2.0.4 \ i686的-W64-的mingw32 \ LIB -o“bin \ Debug \ Snake Game.exe”obj \ Debug \ main.o -lmingw32 ...... \ Downloads \ SDL2-devel-2.0.4-mingw \ SDL2-2.0.4 \ i686-w64- mingw32的\ LIB \ libSDL2main.a ...... \下载\ SDL2-devel的-2.0.4-MinGW的\ SDL2-2.0.4 \ i686的-W64-的mingw32 \ LIB \ libSDL2.a obj \ Debug \ main.o:在函数
SDL_main': C:/XXX/XXX/XXX/XXX/XXX/main.c:9: undefined reference to
SDL_WM_SetCaption'
日志继续使用未定义的引用。
有人可以指导我解决这个链接问题吗?
答案 0 :(得分:2)
SDL2中没有SDL_WM_SetCaption
。您的代码可能使用较旧的SDL 1.2。使用正确的库或修改代码,例如https://wiki.libsdl.org/MigrationGuide