使用Codelite与mingw编译器链接时出错,无法找到lib文件夹

时间:2014-11-10 17:42:42

标签: c++ sdl sdl-2 codelite

我正在尝试开始使用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库,但我对编译器没有任何线索。
这是预定义的代码,它应该工作,所以问题是在某处设置?

1 个答案:

答案 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库的细节)标志。