链接sfml-audio

时间:2015-12-28 06:33:43

标签: c++ sfml

我试图让SFML音频在我的c ++程序中运行。我使用的是mingw64的Windows 10和g ++版本5.2.0。奇怪的是,我无法链接sfml-audio。我能够在this页面编译并运行该程序,但它并没有使用音频。 (该页面适用于linux用户,但我只是在那里查看示例。)

但是,当我尝试编译这个程序时,sfml_test.cpp:

#include <SFML/Audio.hpp>

int main()
{
    sf::SoundBuffer buffer;
    if (!buffer.loadFromFile("sound.wav"))
        return -1;

    return 0;
}

在终端中使用此命令:

g++ sfml_test.cpp -lsfml-audio -lsfml-system

我收到此错误:

C:\Users\sudgy\AppData\Local\Temp\ccZW1WAC.o:sfml_test.cpp:(.text+0x54): undefined reference to `_imp___ZN2sf11SoundBuffer12loadFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE'
collect2.exe: error: ld returned 1 exit status

出了什么问题?我认为这是我安装库的问题,但上面的图形示例工作正常。如果您需要,我使用左下角的Windows部分从this页面下载。

谢谢!

1 个答案:

答案 0 :(得分:0)

好消息。 4.9.2 MinGW您为5.2.0 MinGW编译器下载了这些预编译的二进制文件。这就是你遇到问题的原因。我与字符串或字符有关。

解。使用cmake使用编译器5.2.0 MinGW从源代码构建。

坏消息。我不知道如何使用cmake并偶然发现这个问题寻找答案。让我知道你做了什么。我也有这个相同的编译器。