我正在尝试将 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
一些注意事项:
- 我尝试将名称从
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"
生活是美好的。
关于c++ - SFML 2.3.2 与 Linux 中的 Qt 5.7 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38334040/