在 Codelite 中链接 SFML,找不到库

Linking SFML in Codelite, cannot find libraries

本文关键字:找不到 SFML 链接 Codelite      更新时间:2023-10-16

我正在尝试在Codelite 9.1.3中链接SFML2.3.1。我使用的是 Windows 10,64 位。我按照本教程 http://en.sfml-dev.org/forums/index.php?topic=18820.0 做了所有事情。我做了包含路径,库路径,以正确的顺序输入包括依赖项在内的库。很多其他人也问过类似的问题,我已经尝试了那里提供的所有解决方案 - CodeLite 中的链接 SFML - 以及其他几个解决方案。这是我得到的错误:

C:WINDOWSsystem32cmd.exe /C C:/TDM-GCC-64/bin/mingw32-make.exe -j8 SHELL=cmd.exe -e -f  Makefile
"----------Building project:[ CodeLiteProject - Debug ]----------"
mingw32-make.exe[1]: Entering directory 'C:/Users/Benjamin/Documents/sfml/CodeLiteProject'
C:/TDM-GCC-64/bin/g++.exe -o ./Debug/CodeLiteProject @"CodeLiteProject.txt" -L. -LC:/SFML-2.3.1/lib  -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lsfml-audio-s -lsfml-network-s -lopengl32 -lfreetype -ljpeg -lwinmm -lgdi32 -lopenal32 -lws2_32
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/SFML-2.3.1/lib/libsfml-graphics-s.a when searching for -lsfml-graphics-s
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/SFML-2.3.1/liblibsfml-graphics-s.a when searching for -lsfml-graphics-s
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/SFML-2.3.1/lib/libsfml-graphics-s.a when searching for -lsfml-graphics-s
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lsfml-graphics-s

它为每个库重复相同的最后四行(跳过不兼容 - 找不到)。然后毕竟它说:

collect2.exe: error: ld returned 1 exit status
mingw32-make.exe[1]: *** [Debug/CodeLiteProject] Error 1
CodeLiteProject.mk:78: recipe for target 'Debug/CodeLiteProject' failed
mingw32-make.exe[1]: Leaving directory 'C:/Users/Benjamin/Documents/sfml/CodeLiteProject'
mingw32-make.exe: *** [All] Error 2

我以前用编译器做过的所有事情都是点击"构建和运行",所以我真的很感激任何帮助。此外,我已经尝试了进入库的各种不同方式(-l*,*-s,*-s-d,*.lib,*.a等)。

这一行:

C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe:搜索 -lsfml-graphics-s 时跳过不兼容的 C:/SFML-2.3.1/lib/libsfml-graphics-s.a

此错误通常意味着您有一个主要差异,即您的代码被编译为 64 位应用程序,而 SFML 库被构建为 32 位库。

尝试使用使用 64

位编译器构建的 SFML 库(最好使用与您正在使用的编译器相同的编译器 - TDM-GCC 64 位/v5.1)

您似乎没有链接调试 SFML 库,但该项目正在调试模式下构建。在调试中构建时,将"-d"附加到 SFML 库名称的末尾,例如:

/TDM-GCC-64/bin/g++.exe -o ./Debug/CodeLiteProject @"CodeLiteProject.txt" -L. -LC:/SFML-2.3.1/lib  -lsfml-graphics-s-d -lsfml-window-s-d -lsfml-system-s-d -lsfml-audio-s-d -lsfml-network-s-d ...