【发布时间】:2018-07-17 14:49:15
【问题描述】:
我正在尝试使用 SFML 创建 C++ 应用程序。按照教程,为 Windows 安装了 MinGW。我的项目在其根文件夹中有一个 main.cpp 文件,并且 SFML 包含在 lib/sfml 中(相对于 main.cpp)。
我可以使用命令g++ -c main.cpp -g -o build/debug/game.o -Ilib/sfml/include 毫无问题地编译
但是当我尝试使用命令 g++ build/debug/game.o -o build/debug/game.exe -Llib/sfml/lib -lsfml-graphics-d -lsfml-window-d -lsfml-system-d 链接时,我得到未定义的引用
一些错误:
C:\Users\andre\Documents\Repos\Game/main.cpp:5: undefined reference to `_imp___ZN2sf6StringC1EPKcRKSt6locale'
C:\Users\andre\Documents\Repos\Game/main.cpp:5: undefined reference to `_imp___ZN2sf9VideoModeC1Ejjj'
C:\Users\andre\Documents\Repos\Game/main.cpp:5: undefined reference to `_imp___ZN2sf12RenderWindowC1ENS_9VideoModeERKNS_6StringEjRKNS_15ContextSettingsE'
我已经搜索过了,但似乎没有任何帮助。我发现奇怪的是,在某些以前版本的 SFML 中,它在 lib 文件夹中带有更多库,例如 opengl32.lib。不过,它说,例如,我需要 sfml-graphics:
sfml-window-s.lib
sfml-system-s.lib
opengl32.lib
freetype.lib
jpeg.lib
唯一缺少的是opengl32.lib。如果我考虑 sfml-system 和 sfml-window,它也缺少 winmm.lib、gdi32.lib。我不知道这是否与错误有关,但欢迎提供任何帮助。
【问题讨论】:
-
可能是你库的顺序不对,可能顺序应该是:窗口、图形、系统?你知道这些符号是在哪个库中定义的吗?用在哪一个?
-
仍然错误。不,我只是按照教程进行操作。