交叉编译下,通过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'
希望遇到该问题的高人能够指点一下
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
extern "C"了么?