使用Code :: Blocks对SDL函数的未定义引用

时间:2016-09-15 22:00:36

标签: c sdl codeblocks static-linking

关于此问题,有很多类似的主题,但我已经用尽了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'

日志继续使用未定义的引用。

有人可以指导我解决这个链接问题吗?

1 个答案:

答案 0 :(得分:2)

SDL2中没有SDL_WM_SetCaption。您的代码可能使用较旧的SDL 1.2。使用正确的库或修改代码,例如https://wiki.libsdl.org/MigrationGuide