C++链接sfml音频时未定义的引用
C++ Undefined reference when linking sfml-audio
我正试图让SFML音频在我的c++程序中工作。我使用的是来自mingw64的Windows10和g++5.2.0版本。奇怪的是,我只是无法链接sfml音频。我可以在这个页面上编译和运行程序,但它不使用音频。(这个页面是为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:UserssudgyAppDataLocalTempccZW1WAC.o:sfml_test.cpp:(.text+0x54): undefined reference to `_imp___ZN2sf11SoundBuffer12loadFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE'
collect2.exe: error: ld returned 1 exit status
怎么了?我认为这是我安装库时的问题,但上面的图形示例运行良好。如果你需要它,我从这个页面下载了它,使用窗口部分左下角的下载。
谢谢!
好消息。4.9.2 MinGW您为5.2.0 MinGW编译器下载了这些预编译的二进制文件。这就是你遇到问题的原因。我和字符串或字符有关。
解决方案。使用cmake到使用编译器5.2.0 MinGW从源代码进行构建。
坏消息。我不知道如何使用cmake,在寻找答案时偶然发现了这个问题。让我知道你做了什么。我也有同样的编译器。
相关文章:
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 编译时的 CImg 库返回对"__imp_SetDIBitsToDevice"的未定义引用
- 对Py_Initialize()的未定义引用
- 使用mysql c++连接器的未定义引用
- 对 Scalar ::Scalar() 的未定义引用
- 对复制 CTOR 和 CTOR 的未定义引用
- 对显式实例化的模板函数的未定义引用
- TensorRT (C++ API) 对"createNvOnnxParser_INTERNAL"的未定义引用
- 2个模板化类的非模板友元函数未定义引用错误
- 编译 libfluid 样本控制器时对"event_base_del_virtual"的未定义引用
- 获取对function_name的未定义引用
- 对 'std::thread::_M_start_thread CMake 的未定义引用进行基准测试
- 对结构方法的未定义引用
- 使用内联函数 c++ 的未定义引用
- 对 CMake 中'cudaRegisterLinkedBinary'链接错误的未定义引用?
- 对 DLOPEN 的未定义引用
- QT C++中对全局变量的未定义引用
- 快速数学导致对"__pow_finite"的未定义引用
- 对 boost::system::d etail::system_category_instance 的未定义引用,从
- OpenCV 3.4.3 中对 'cv::String::d eallocate()' 错误的未定义引用