NDK下OpenCV undefined reference to `cv::imencode std::__ndk1::vector 异常

在使用NDK时遇到OpenCV库链接错误,报undefined reference to `cv::imencode'。原因是新版本NDK默认使用libc++,而OpenCV可能使用gnustl。解决方案包括降级NDK或重新编译OpenCV以匹配libc++。通过降级NDK,问题成功得到解决。
摘要由CSDN通过智能技术生成
报错日志
CMakeFiles/enhance_lib.dir/src/main/cpp/ImageProcess.cpp.o: In function `ImageEnhancementWithDecode':
/home/albertsnow/WorkSpace/NubiyaARThai/documentlibrary/src/main/cpp/ImageProcess.cpp:347: undefined reference to `cv::imencode(cv::String const&, cv::_InputArray const&, std::__ndk1::vector<unsigned char, std::__ndk1::allocator<unsigned char> >&, std::__ndk1::vector<int, std::__ndk1::allocator<int> > const&)'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed
解决方案

StackOverFlow
Recently, NDK switched to libc++ as default STL, but OpenCV is built with gnustl. for your library will fix that.
Alternatively, you can rebuild OpenCV

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值