使用 Code::Blocks 对 SDL 函数的未定义引用
Undefined reference to SDL functions using Code::Blocks
SO 上有很多类似的主题,但我已经用尽了 15 个类似主题的所有建议。
根据 运行 使用 SDL 库的教程代码,IDE 抱怨 "undefined reference" 所有与 SDL 相关的函数。
情况
架构:64 位
IDE:代码块 16.01
编译器:GNU GCC
我尝试过的事情
1)我告诉编译器在目录下找到header:
.....\i686-w64-mingw32\include\SDL2 使用相对路径
我没有 select \include 我也没有 select .....\x86_64-w64-mingw32\include\SDL2
2)我告诉编译器在目录下找到库文件:
.....\i686-w64-mingw32\lib 使用相对路径
我没有 select ....\lib 我也没有 select .....\x86_64-w64-mingw32\lib
3) 在link下载库时,我在目录下包含了四个库
....\i686-w64-mingw32\lib 而不是上面提到的其他目录。
4) linked 库的顺序如下:
SDL2main.lib
SDL2.lib
SDL2test.lib
5) 我确保 main.c 的属性检查了编译文件,检查了 link 文件,同时检查了属于目标调试和发布的属性。
构建日志:
-------------- Build: Debug in Snake Game (compiler: GNU GCC Compiler)---------------
mingw32-g++.exe
-L......\Downloads\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
......\Downloads\SDL2-devel-2.0.4-mingw\SDL2-2.0.4\i686-w64-mingw32\lib\libSDL2.a
obj\Debug\main.o: In function SDL_main':
C:/XXX/XXX/XXX/XXX/XXX/main.c:9: undefined
reference to
SDL_WM_SetCaption'
日志不断地引用未定义的引用。
谁能指导我解决这个 linking 问题?
SDL2中没有SDL_WM_SetCaption
。您的代码很可能使用旧的 SDL 1.2。使用正确的库或修改您的代码,例如遵循 https://wiki.libsdl.org/MigrationGuide
SO 上有很多类似的主题,但我已经用尽了 15 个类似主题的所有建议。
根据 运行 使用 SDL 库的教程代码,IDE 抱怨 "undefined reference" 所有与 SDL 相关的函数。
情况
架构:64 位
IDE:代码块 16.01
编译器:GNU GCC
我尝试过的事情
1)我告诉编译器在目录下找到header: .....\i686-w64-mingw32\include\SDL2 使用相对路径
我没有 select \include 我也没有 select .....\x86_64-w64-mingw32\include\SDL2
2)我告诉编译器在目录下找到库文件: .....\i686-w64-mingw32\lib 使用相对路径
我没有 select ....\lib 我也没有 select .....\x86_64-w64-mingw32\lib
3) 在link下载库时,我在目录下包含了四个库 ....\i686-w64-mingw32\lib 而不是上面提到的其他目录。
4) linked 库的顺序如下:
SDL2main.lib
SDL2.lib
SDL2test.lib
5) 我确保 main.c 的属性检查了编译文件,检查了 link 文件,同时检查了属于目标调试和发布的属性。
构建日志:
-------------- Build: Debug in Snake Game (compiler: GNU GCC Compiler)---------------
mingw32-g++.exe -L......\Downloads\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 ......\Downloads\SDL2-devel-2.0.4-mingw\SDL2-2.0.4\i686-w64-mingw32\lib\libSDL2.a obj\Debug\main.o: In function
SDL_main': C:/XXX/XXX/XXX/XXX/XXX/main.c:9: undefined reference to
SDL_WM_SetCaption'
日志不断地引用未定义的引用。
谁能指导我解决这个 linking 问题?
SDL2中没有SDL_WM_SetCaption
。您的代码很可能使用旧的 SDL 1.2。使用正确的库或修改您的代码,例如遵循 https://wiki.libsdl.org/MigrationGuide