我正在尝试开始使用SDL并尝试编译一个'hello world'入门应用来检查我的配置,我收到此错误:
C:/MinGW-4.8.1/bin/g++.exe -c "C:/Users/Me/Documents/Cpp_Projects/Demo_Graphics/main.cpp" -g -O0 -Wall -o ./Debug/main.cpp.o -I. -IC:/Users/Me/Documents/Cpp_Projects/SDL2/32bit/include
C:/MinGW-4.8.1/bin/g++.exe -o ./Debug/Demo_Graphics @"Demo_Graphics.txt" -L. -lC:/Users/Me/Documents/Cpp_Projects/SDL2/32bit/lib/
c:/mingw-4.8.1/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lC:/Users/Me/Documents/Cpp_Projects/SDL2/32bit/lib/
collect2.exe: error: ld returned 1 exit status
mingw32-make.exe[1]: *** [Debug/Demo_Graphics] Error 1
Demo_Graphics.mk:79: recipe for target 'Debug/Demo_Graphics' failed
mingw32-make.exe[1]: Leaving directory 'C:/Users/Me/Documents/Cpp_Projects/Demo_Graphics'
mingw32-make.exe: *** [All] Error 2
Makefile:4: recipe for target 'All' failed
1 errors, 0 warnings
目录C:/Users/Me/Documents/Cpp_Projects/SDL2/32bit/lib/
当然存在,并且其中包含所需的SDL库,但我对编译器没有任何线索。
这是预定义的代码,它应该工作,所以问题是在某处设置?
答案 0 :(得分:0)
-l编译器标志正在添加库依赖项。它不指定查找库的路径(即-L标志),这似乎是您所期望的。
在您的错误消息中:
-L. -lC:/Users/Me/Documents/Cpp_Projects/SDL2/32bit/lib/
您可以看到编译器正在查找当前工作目录(。)中的库 C:/ Users / Me / Documents / Cpp_Projects / SDL2 / 32bit / lib / ,但这是不是库 - 这是您存储SDL库的目录。
在CodeLite链接器设置中,您希望将库路径更改为C:/ Users / Me / Documents / Cpp_Projects / SDL2 / 32bit / lib /,或使用
-LC:/Users/Me/Documents/Cpp_Projects/SDL2/32bit/lib/
作为构建标志。
您还需要链接到SDL2库,因此您需要在构建/链接器中添加-lSDL2(可能也是-lSDL2main,我不能记住SDL库的细节)标志。