首页 > 交叉编译下,通过g++生成的库文件在gcc编译时出现undefined reference to xxx问题该怎么解决?

交叉编译下,通过g++生成的库文件在gcc编译时出现undefined reference to xxx问题该怎么解决?

最近在开发一个视频处理的arm板子,由于板子处理能力有限,所有编译工作都是放在Linux下进行,厂商给提供了SDK,SDK中视频流的生成和保存部分都直接沿用,但是这一部分是用C写成的,导致我想用opencv处理只能通过生成一个库文件,再在那个视频生成保存程序(这个程序为make的最终目标)中进行调用,但是生成库文件后调用出现大量undefined reference to xxx:

一下为报错片段

/usr/local/OpenCV-ARM/lib/libopencv_calib3d.so: undefined reference to `__cxa_get_exception_ptr'
/usr/local/OpenCV-ARM/lib/libopencv_contrib.so: undefined reference to `vtable for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >'
/usr/local/OpenCV-ARM/lib/libopencv_contrib.so: undefined reference to `typeinfo for std::exception'
/usr/local/OpenCV-ARM/lib/libopencv_contrib.so: undefined reference to `__cxa_free_exception'
/usr/local/OpenCV-ARM/lib/libopencv_flann.so: undefined reference to `std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::str() const'
/usr/local/OpenCV-ARM/lib/libopencv_calib3d.so: undefined reference to `std::_List_node_base::hook(std::_List_node_base*)'
/usr/local/OpenCV-ARM/lib/libopencv_calib3d.so: undefined reference to `operator new[](unsigned int)'
/usr/local/OpenCV-ARM/lib/libopencv_contrib.so: undefined reference to `std::_List_node_base::unhook()'
/usr/local/OpenCV-ARM/lib/libopencv_calib3d.so: undefined reference to `__cxa_begin_catch'

希望遇到该问题的高人能够指点一下


extern "C"了么?

【热门文章】
【热门文章】