好的,我试图在CodeLite项目中链接SFML但没有成功。那我做了什么:
在CodeLite中为预处理器添加了SFML_STATIC。
将链接库添加到LinkerOptions:
sfml-graphics;sfml-window;sfml-audio;sfml-network;sfml-system
将5 dll(sfml-graphics-2.dll ..等)添加到调试文件夹和项目文件夹
这是构建日志:
C:\WINDOWS\system32\cmd.exe /C ""E:/Program Files (x86)/CodeBlocks/MinGW /bin/mingw32-make.exe" -j4 SHELL=cmd.exe -e -f Makefile""
"----------Building project:[ Test - Debug ]----------"
mingw32-make.exe[1]: Entering directory 'F:/Dropbox/Programming/OpenGL/Test'
"E:/Program Files (x86)/CodeBlocks/MinGW/bin/g++.exe" -o ./Debug/Test @"Test.txt" -L. -LF:/Dropbox/Programming/SFML/SFML-2.3.2x86/lib sfml-graphics sfml-window sfml-audio sfml-network sfml-system
g++.exe: error: sfml-graphics: No such file or directory
g++.exe: error: sfml-window: No such file or directory
g++.exe: error: sfml-audio: No such file or directory
g++.exe: error: sfml-network: No such file or directory
g++.exe: error: sfml-system: No such file or directory
mingw32-make.exe[1]: *** [Debug/Test] Error 1
Test.mk:78: recipe for target 'Debug/Test' failed
mingw32-make.exe[1]: Leaving directory 'F:/Dropbox/Programming/OpenGL/Test'
mingw32-make.exe: *** [All] Error 2
Makefile:4: recipe for target 'All' failed
====1 errors, 0 warnings====
我正在使用CodeLite 9.0.9和SFML-2.3.2x86。
答案 0 :(得分:1)
<强> 1 即可。 &#34;从SFML 2.2开始,当静态链接时,您必须链接 所有SFML对项目的依赖性。这意味着 如果您正在链接sfml-window-s或sfml-window-s-d,例如,您 还必须链接opengl32,winmm和gdi32。其中一些 依赖库可能已经列在&#34;继承下 价值观&#34;,但你自己再添加它们不应该导致任何问题 问题&#34。 如果您要静态链接,您的链接库应该有-s后缀,您应该链接其他库,this。
2 。&#34;当链接到多个SFML库时,请确保以正确的顺序链接它们,这对GCC非常重要。规则是依赖于其他库的库必须首先放在列表中。每个SFML库都依赖于sfml-system,而sfml-graphics也依赖于sfml-window。因此,这三个库的正确顺序是:sfml-graphics,sfml-window,sfml-system - 如上面的屏幕截图所示。&#34; 将链接顺序设置为graphics-s / window -s / system -s / etc
3 。&#34;链接到与配置匹配的库非常重要:&#34; sfml-xxx-d&#34;用于调试,&#34; sfml-xxx&#34;发布。糟糕的混合可能会导致崩溃。&#34; 从您的构建日志中我可以看到您正在使用Release库(没有-d后缀的那些)构建项目,然后您必须将链接库更改为sfml-graphics-sd / etc
如果以上建议不起作用,那么您将搜索路径设置错误。祝你好运
答案 1 :(得分:0)
好的,所以我终于通过改变这样的库来修复它:-lsfml-graphics-s;-lsfml-window-s;-lsfml-audio-s;-lsfml-network-s;-lsfml-system-s;-lopengl32;-lfreetype;-ljpeg;-lwinmm;-lgdi32;-lopenal32;-lws2_32