项目场景
C语言,在Clion上使用SDL图形库,SDL2环境配置无问题。
Cmakelist编辑如下
add_executable(tries tries.c)
target_link_libraries(tries mingw32)
target_link_libraries(tries SDL2main)
target_link_libraries(tries SDL2)
target_link_libraries(tries SDL2_image)
target_link_libraries(tries SDL2_ttf)
问题描述
在Terminal输入如下:
gcc tries.c -o tries
无法正常编译,报错信息如下:
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\33079\AppData\Local\Temp\ccV5I6he.o:tries.c:(.text+0x15):undefined reference to `SDL_Init'
原因分析
需要-l
(小写的L) 给gcc 指定具体的库
解决方案
方法1
-lSDL2main -lSDL2 -lSDL2_image -lSDL2_ttf -lSDL2_mixer
例如:
gcc RoseGuardian.c -o RoseGuardian -lSDL2main -lSDL2 -lSDL2_image -lSDL2_ttf -lSDL2_mixer
./tries.c
方法2
上述方法较为繁琐,一般情况下,可以直接点击Clion上方绿色三角运行。
最后
在挣扎一天半之后,终于在老师、助教以及群友的帮助下找到问题所在和解决方法,献上感恩的心。
如有建议或发现错误欢迎指出!