【发布时间】:2015-05-16 12:14:15
【问题描述】:
我应该做一个音频分析程序。我已经成功安装了 QT Creator,并且还设法包含了 SFML 库。
这是我添加到 audioPlayer.pro 文件中的内容:
INCLUDEPATH += D:\qt\SFML-2.2\include\SFML
INCLUDEPATH += D:\qt\SFML-2.2\include
LIBS += D:\qt\SFML-2.2\bin\sfml-audio-d-2.dll
mainwidow.cpp:
void MainWindow::on_pushButton_clicked() { QString fileName = QFileDialog::getOpenFileName(this, tr("打开文件"), "C://", tr("音频文件(*.wav)"));
std::string file = fileName.toStdString();
sf::SoundBuffer buffer;
buffer.loadFromFile((file));
sf::Sound sound;
sound.setBuffer(buffer);
sound.play();
}
我相信这里发生的事情很明显。
所以,当我构建我的项目时,我得到了 8 个错误:
mainwindow.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall sf::Sound::Sound(void)" (__imp_??0Sound@sf@@QAE@XZ) 引用在函数“private: void __thiscall MainWindow::on_pushButton_clicked(void)”(?on_pushButton_clicked@MainWindow@@AAEXXZ)
其他的都是一样的,我就不贴了。
这是最后一个:
debug\audioPlayer.exe:-1: error: LNK1120: 7 unresolved externals
是的。我试图在工具->选项->构建和运行中手动包含编译器。我设置了 MinGw 编译器。我已经在这个网站和其他网站上关注了几个教程,但我就是想不通。
我查看了这两个链接:
https://github.com/LaurentGomila/SFML/wiki/Tutorial:-Compile-and-Link-SFML-with-Qt-Creator https://github.com/LaurentGomila/SFML/wiki/Tutorial:-Link-SFML-with-Qt-Creator
但没有成功。
【问题讨论】:
-
使用 Qt,您实际上并不需要 SFML,这只是开销,因为 Qt 可以镜像其所有功能。如果您需要专业的音频支持,只需构建和链接 RTAudio。
-
你能给我一些指导如何链接它吗? ..
-
对我来说,只使用 Creator 的“添加库”向导并提供正确的库一直很有效。 99% 的问题在于尝试使用使用不兼容的编译器版本编译的库。最好使用与 Qt 使用的相同版本自己构建 lib。
-
我不确定我是否知道该怎么做:(
-
我通过转移到 Linux Ubuntu 解决了这个问题,并且我使用上面的链接成功地配置了它:github.com/LaurentGomila/SFML/wiki/…
标签: c++ windows qt linker linker-errors