linux - 交叉编译下,通过g++生成的库文件在gcc编译时出现undefined reference to xxx问题该怎么解决?
高洛峰
高洛峰 2017-04-17 13:28:26
0
1
819

最近在开发一个视频处理的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'

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

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
左手右手慢动作

extern "C"了么?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!