0

好的,所以我试图在 CodeLite 项目中链接 SFML,但没有成功。那么我做了什么:

  1. 将 SFML 的 include 文件夹添加到 CodeLite 的 IncludePaths 中。
  2. 将 SFML 的 lib 文件夹添加到 CodeLite 的 LibrariesSearchPath。
  3. 在 CodeLite 的预处理器中添加了 SFML_STATIC。

  4. 像这样将库添加到 LinkerOptions :

    sfml-graphics;sfml-window;sfml-audio;sfml-network;sfml-system
    
  5. 将 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。

4

2 回答 2

2

1 . “从 SFML 2.2 开始,静态链接时,您还必须将所有 SFML 的依赖项链接到您的项目。这意味着,如果您要链接 sfml-window-s 或 sfml-window-sd,例如,您还将拥有链接 opengl32、winmm 和 gdi32。其中一些依赖库可能已经列在“继承的值”下,但自己再次添加它们不会导致任何问题。 如果你是静态链接,你的链接库应该有 -s 后缀,你应该链接其他库看看这个

2. “链接到多个SFML库时,请确保以正确的顺序链接它们,这对GCC非常重要。规则是依赖于其他库的库必须放在列表的最前面。每个SFML库都依赖于“ 将链接顺序设置为 graphics-s/window-s/system-s/etc

3 .“链接到与配置匹配的库很重要:Debug 为“sfml-xxx-d”,Release 为“sfml-xxx”。混合不当可能会导致崩溃。” 从您的构建日志中,我可以看到您正在将项目构建为使用发布库(没有 -d 后缀的那些)进行调试,然后您必须将链接库更改为 sfml-graphics-sd/etc

如果上述建议不起作用,那么您设置的搜索路径错误。祝你好运

于 2016-01-31T10:19:59.577 回答
0

好的,所以我终于设法通过更改这样的库来修复它:-lsfml-graphics-s;-lsfml-window-s;-lsfml-audio-s;-lsfml-network-s;-lsfml-system-s;-lopengl32;-lfreetype;-ljpeg;-lwinmm;-lgdi32;-lopenal32;-lws2_32

于 2016-01-31T15:26:29.333 回答