SFML 2.3.2 与 Linux 中的 Qt 5.7 集成

SFML 2.3.2 integration with Qt 5.7 in Linux

本文关键字:集成 Qt Linux SFML 中的      更新时间:2023-10-16

我正在尝试将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(调试、调试|发布)行,那么我会收到未定义的引用错误。如果我不注释掉同一行,那么我会收到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

一些注意事项:

  • 我尝试将名称从lsfml更改为libsfml,这就是为什么它与说明不同的原因。
  • 我尝试了不同的 sfml 下载方法,我用 sudo apt-get install libsfml-dev 下载了它,它适用于 g++,但我无法将其连接到 Qt(我不确定库可能位于何处)

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

这可能是一种混乱的方式,但根据 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"

生命是古德。