ndk编译error: undefined reference to ‘fegetenv‘
导读
在使用Android studio的CMake重新编译OpenCV的时候报
/build/master_pack-android/build/o4a/3rdparty/tbb/tbb-2018_U1/src/tbb/scheduler_common.h:431: error: undefined reference to ‘fegetenv’
/build/master_pack-android/build/o4a/3rdparty/tbb/tbb-2018_U1/src/tbb/scheduler_common.h:435: error: undefined reference to ‘fesetenv’
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [build/intermediates/ndk/obj/local/armeabi-v7a/libinitializer.so] Error 1
编译环境
-
ndk
:r21b -
OpenCv
:4.4.0
起因
在封装Android SDK的时候底层c++项目需要用到opencv,直接使用opencv编译好的so库,导致编译出来的apk包太大
。而实际底层使用的时候,并不是opencv所有的功能都使用到,所以想对opencv没用到的功能做一些剔除。
通过配置CMake
文件来重新编译OpenCV库,在编译时的时候提示OpenCV依赖的一个第三方库图报上面的错误。
解决办法
修改app下面的build.gradle
文件,将defaultConfig
配置项中的最小Android版本改成如下配置
compileSdkVersion = 28
targetSdkVersion = 28
minSdkVersion = 21
如果使用的是mk的方式进行编译的,在Application.mk
文件中添加
APP_PLATFORM := android-21
参考:https://github.com/opencv/opencv/issues/14419
本文地址:https://blog.csdn.net/sinat_29957455/article/details/107554021
上一篇: 美图秀秀怎么把正常照片变成手绘肖像画?
下一篇: 用自己的照片制作出吸引人的相册封面
推荐阅读
-
Windows编译OpenCV4Android解决undefined reference to std错误
-
ndk编译error: undefined reference to ‘fegetenv‘
-
fcgi-2.4.0编译出现echo-cpp.o: undefined reference to symbol ‘FCGX_InitRequest‘
-
Android NDK 报错:undefined reference to ‘main‘(invalid character)解决办法
-
error: undefined reference to ***
-
【使用 libssh】编译失败, undefined reference to ‘ssh_new‘, undefined reference to ‘ssh_free‘
-
error: undefined reference to
-
解决ROS编译安装Opencv项目出现undefined Reference to....问题
-
ndk异常:error: undefined reference to 'atof'
-
linux下qt程序报“ error: undefined reference to `ClassA::funcA(unsigned short)‘”