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
时间: 2024-01-20 12:02:39 浏览: 66
这个错误是由于在编译时缺少对C++标准库的链接所导致的。你需要在Makefile中添加对C++标准库的链接。
可以在Makefile中的链接器选项中添加"-lstdc++"选项来实现。你可以将以下内容添加到Makefile中的链接器选项中:
```
LDFLAGS += -lstdc++
```
这将在链接时自动添加对C++标准库的链接。重新编译应用程序或库,应该就会解决这个问题。
相关问题
编译报错如下:CMakeFiles/t3_node.dir/src/main.cpp.o: In function `boost::asio::ssl::detail::openssl_init_base::do_init::~do_init()': main.cpp:(.text._ZN5boost4asio3ssl6detail17openssl_init_base7do_initD2Ev[_ZN5boost4asio3ssl6detail17openssl_init_base7do_initD5Ev]+0x12): undefined reference to `CONF_modules_unload' CMakeFiles/t3_node.dir/src/main.cpp.o: In function `boost::asio::error::detail::ssl_category::message[abi:cxx11](int) const': main.cpp:(.text._ZNK5boost4asio5error6detail12ssl_category7messageB5cxx11Ei[_ZNK5boost4asio5error6detail12ssl_category7messageB5cxx11Ei]+0x2c): undefined reference to `ERR_reason_error_string' main.cpp:(.text._ZNK5boost4asio5error6detail12ssl_category7messageB5cxx11Ei[_ZNK5boost4asio5error6detail12ssl_category7messageB5cxx11Ei]+0x48): undefined reference to `ERR_lib_error_string' main.cpp:(.text._ZNK5boost4asio5error6detail12ssl_category7messageB5cxx11Ei[_ZNK5boost4asio5error6detail12ssl_category7messageB5cxx11Ei]+0x59): undefined reference to `ERR_func_error_string' collect2: error: ld returned 1 exit status t3/CMakeFiles/t3_node.dir/build.make:318: recipe for target '/smartview/devel/lib/t3/t3_node' failed make[2]: *** [/smartview/devel/lib/t3/t3_node] Error 1 CMakeFiles/Makefile2:3555: recipe for target 't3/CMakeFiles/t3_node.dir/all' failed make[1]: *** [t3/CMakeFiles/t3_node.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... [ 96%] Built target play_node [100%] Built target smartview_handler Makefile:145: recipe for target 'all' failed make: *** [all] Error 2 Invoking "make -j20 -l20" failed
这个错误提示表明在链接时找不到OpenSSL库。你可以尝试在CMakeLists.txt文件中添加链接OpenSSL库的代码,如下所示:
```
find_package(OpenSSL REQUIRED)
target_link_libraries(your_project_name OpenSSL::SSL OpenSSL::Crypto)
```
其中,your_project_name是你的项目名。这个代码片段会在链接你的项目时添加OpenSSL库。如果仍然无法解决问题,你可以检查一下OpenSSL库是否正确安装并且库的路径是否正确添加到系统路径中。
[OHOS ERROR] ../../base/security/crypto_framework/test/unittest/src/crypto_md_sm3_test.cpp:42:13: error: unused variable 'g_testBigData' [-Werror,-Wunused-variable] [OHOS ERROR] static char g_testBigData[] = "VqRH5dzdeeturr5zN5vE77DtqjV7kNKbDJqk4mNqyYRTXymhjR\r\n" 解决方法
这是一个编译错误,并不是一个问题,它提示在编译 crypto_md_sm3_test.cpp 文件时,有一个未使用的变量 g_testBigData。解决该问题的方法是删除该变量或者在代码中使用它。您可以通过以下两种方式来解决该问题:
1. 删除未使用的变量:您可以删除该变量,以消除编译错误。例如,您可以将该行代码删除:
`static char g_testBigData[] = "VqRH5dzdeeturr5zN5vE77DtqjV7kNKbDJqk4mNqyYRTXymhjR\r\n";`
2. 使用未使用的变量:如果您需要使用该变量,请确保在代码中使用它。例如,您可以在代码中添加以下行:
```
void someFunction()
{
char buffer[1024];
strncpy(buffer, g_testBigData, sizeof(buffer));
// Do something with buffer
}
```
请注意,无论哪种方法,都需要重新编译代码以确保代码可以正确运行。
阅读全文