SFML 2.3.2 在 Linux 中与 Qt 5.7 集成

SFML 2.3.2 integration with Qt 5.7 in Linux

我正在尝试将 SFML 2.3.2 库与 Qt Creator 一起使用来制作一个小应用程序。

我在 .pro 文件中添加了包含以下代码的库:

LIBS += -L"$HOME/Libraries/C++/SFML-2.3.2/lib"

CONFIG(release, debug|release): LIBS += -libsfml-audio -libsfml-graphics -libsfml-network -libsfml-window -libsfml-system

CONFIG(debug, debug|release): LIBS += -libsfml-audio-d -libsfml-graphics-d -libsfml-network-d -libsfml-window-d -libsfml-system-d

INCLUDEPATH += "$HOME/Libraries/C++/SFML-2.3.2/include"
DEPENDPATH += "$HOME/Libraries/C++/SFML-2.3.2/include"

如 SFML 网站上所述:https://github.com/SFML/SFML/wiki/Tutorial%3A-Compile-and-Link-SFML-with-Qt-Creator

但是,当我进入我的 SFML-2.3.2/lib 文件时,我没有看到任何以“-d”结尾的文件。

如果我注释掉该 CONFIG(debug, debug|release) 行,则会出现 undefined reference 错误。如果我不注释掉同一行,那么我会得到 cannot find -libsfml-audio-d 类型的错误。

这是我的 $HOME/Libraries/C++/SFML-2.3.2/lib 目录中的文件:

libsfml-audio.so        libsfml-graphics.so.2.3    libsfml-network.so.2.3.2  libsfml-window.so
libsfml-audio.so.2.3    libsfml-graphics.so.2.3.2  libsfml-system.so         libsfml-window.so.2.3
libsfml-audio.so.2.3.2  libsfml-network.so         libsfml-system.so.2.3     libsfml-window.so.2.3.2
libsfml-graphics.so     libsfml-network.so.2.3     libsfml-system.so.2.3.2

一些注意事项:

我希望我能写一个 "suitable" 问题。谢谢你的回答!

这可能是一种混乱的方式,但根据 Kuba Ober 的建议,我找到了解决方案。如果您知道更好的解决方案或者此解决方案实际上是否正确,请告诉我。

我将我的 .pro 文件部分更改为:

LIBS += -L"$HOME/Libraries/C++/SFML-2.3.2/lib"

CONFIG(release, debug|release): LIBS += -lsfml-audio -lsfml-graphics -lsfml-network -lsfml-window -lsfml-system
CONFIG(debug, debug|release): LIBS += -lsfml-audio -lsfml-graphics -lsfml-network -lsfml-window -lsfml-system

INCLUDEPATH += "$HOME/Libraries/C++/SFML-2.3.2/include"
DEPENDPATH += "$HOME/Libraries/C++/SFML-2.3.2/include"

生活是美好的。