/home/liyanghao/sdk111/software/v80x/app/vx600_main/../../lib/libmp4v2.so:对‘std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream()@GLIBCXX_3.4.26’未定义的引用 collect2: 错误: ld 返回 1
时间: 2023-12-25 21:05:36 浏览: 98
这个错误与前一个错误类似,也是链接时出现的。它表示编译器无法找到对应的函数实现,具体来说是找不到 GLIBCXX_3.4.26 版本的 basic_ostringstream 函数。这个函数是 C++ 标准库提供的,一般情况下应该已经在系统中安装好了。
为了解决这个问题,你可以尝试以下几种方法:
1. 确认你是否正确地添加了相关的库文件,并且链接顺序正确。
2. 确认你的系统中是否安装了 libstdc++ 库,如果没有安装,可以尝试安装一下。
3. 如果你的系统中已经安装了 libstdc++ 库,但是链接时仍然报错,可以尝试在编译时加上 -lstdc++ 参数,强制链接指定版本的库文件。
希望这些方法能够帮助你解决问题。
相关问题
/home/liyanghao/sdk111/software/v80x/app/vx600_main/../../lib/libmp4v2.a(mp4atom.o):在函数‘mp4v2::impl::MP4Atom::ReadProperties(unsigned int, unsigned int)’中: mp4atom.cpp:(.text+0x11c4):对‘std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream()’未定义的引用
这个错误提示是在编译链接阶段出现的,它告诉我们在链接libmp4v2.a库时,找不到对std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream()的定义。可能是因为你的代码中使用了这个函数,但是没有包含相应的头文件或者链接了相关的库。
解决这个问题的方法是,检查你的代码中是否包含了正确的头文件,并且确认你的链接选项中是否正确地包含了相关的库文件。如果仍然无法解决问题,可以尝试重新编译库文件或者更新编译工具链版本。
mp4atom.cpp:(.text._ZN5mp4v24impl19MP4Integer8Property8SetValueEhj[_ZN5mp4v24impl19MP4Integer8Property8SetValueEhj]+0x34):对‘std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream()’未定义的引用 /home/liyanghao/sdk111/software/v80x/app/vx600_main/../../lib/libmp4v2.a(mp4atom.o):mp4atom.cpp:(.text._ZN5mp4v24impl20MP4Integer24Property8SetValueEjj[_ZN5mp4v24impl20MP4Integer24Property8SetValueEjj]+0x34): 跟着更多未定义的参考到 std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream() collect2: 错误: ld 返回 1
这个错误是由于在编译时缺少对C++标准库的链接所导致的。你需要在Makefile中添加对C++标准库的链接。
可以在Makefile中的链接器选项中添加"-lstdc++"选项来实现。你可以将以下内容添加到Makefile中的链接器选项中:
```
LDFLAGS += -lstdc++
```
这将在链接时自动添加对C++标准库的链接。重新编译应用程序或库,应该就会解决这个问题。
阅读全文