【问题标题】:Linking SFML into QT on Windows在 Windows 上将 SFML 链接到 QT
【发布时间】: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


【解决方案1】:

我通过转移到 Linux Ubuntu 解决了这个问题,并且我使用上面的这个链接成功地配置了它:https://github.com/LaurentGomila/SFML/wiki/Tutorial:-Compile-and-Link-SFML-with-Qt-Creator

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-22
    • 2011-06-11
    • 1970-01-01
    • 2016-01-28
    • 2016-10-19
    • 2020-02-16
    • 2020-06-19
    • 2020-05-26
    相关资源
    最近更新 更多