0

我正在尝试开始使用 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 库,但我对编译器一无所知。
这是预定义的代码,应该可以工作,所以问题出在某个地方?

4

1 回答 1

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 库的细节)添加到您的构建/链接器标志中。

于 2014-11-10T19:34:36.097 回答