我试图让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页面下载。
谢谢!
答案 0 :(得分:0)
好消息。 4.9.2 MinGW您为5.2.0 MinGW编译器下载了这些预编译的二进制文件。这就是你遇到问题的原因。我与字符串或字符有关。
解。使用cmake使用编译器5.2.0 MinGW从源代码构建。
坏消息。我不知道如何使用cmake并偶然发现这个问题寻找答案。让我知道你做了什么。我也有这个相同的编译器。