下载
3.2.0版本的opencv :
wget --no-check-certificate https://github.com/opencv/opencv/archive/3.2.0.tar.gz
编译链安装
交叉编译安装:
chmod +x poky-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-vfp-neon-toolchain-1.7.sh
./poky-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-vfp-neon-toolchain-1.7.sh
运行
source /opt/poky/1.7/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi
如上已经安装完毕,以下后缀可调用到编译器 : arm-poky-linux-gnueabi-
编译
mkdir build;
cd build
cmake -DCMAKE_SYSTEM_NAME= "Linux" -DWITH_IPP= OFF -DCMAKE_TOOLCHAIN_FILE=../platforms/linux/arm.toolchain.cmake DCMAKE_CXX_COMPILER=arm-poky-linux-gnueabi--g++ DCMAKE_C_COMPILER=arm-poky-linux-gnueabi--gcc DCMAKE_AR=arm-poky-linux-gnueabi--ar DCMAKE_LINKER=arm-poky-linux-gnueabi--ld DCMAKE_NM=arm-poky-linux-gnueabi--nm DCMAKE_OBJCOPY=arm-poky-linux-gnueabi--objcopy DCMAKE_OBJDUMP=arm-poky-linux-gnueabi--objdump DCMAKE_RANLIB=arm-poky-linux-gnueabi--ranlib DENABLE_NEON= ON -DENABLE_VFPV4=OFF -DBUILD_SHARED_LIBS= OFF -DBUILD_DOCS= OFF -DBUILD_FAT_JAVA_LIB= OFF DBUILD_PERF_TESTS= OFF -DBUILD_PROTOBUF= OFF -DBUILD_JASPER= ON -DBUILD_JPEG= ON -DBUILD_ZLIB= ON -DWITH_CUDA= OFF DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE= "-O3 -DNDEBUG" -DCMAKE_CXX_FLAGS_DEBUG= "-g" DCMAKE_CXX_FLAGS= "-mcpu=cortex-a9 -mfpu=neon -mfloat-abi=hard -fPIC" -DCMAKE_C_FLAGS= "-mcpu=cortex-a9 mfpu=neon -mfloat-abi=hard -fPIC" -DCMAKE_SHARED_LINKER_FLAGS= "-shared" -DWITH_EIGEN= OFF DWITH_FFMPEG= OFF -DWITH_ITT= OFF -Dopencv_dnn_BUILD_TORCH_IMPORTER= OFF -DOPENCL_FOUND= OFF -DWITH_1394= OFF DWITH_CAROTENE= OFF -DWITH_CUFFT= OFF -DWITH_GPHOTO2= OFF -DWITH_GSTREAMER= OFF -DWITH_GTK= OFF -DWITH_LAPACK= OFF DWITH_MATLAB= OFF -DWITH_OPENCL= OFF -DWITH_OPENCLAMDBLAS= OFF -DWITH_OPENCLAMDFFT= OFF -DWITH_OPENEXR= OFF DWITH_PNG= OFF -DWITH_TIFF= OFF -DWITH_WEBP= OFF -DBUILD_TESTS= OFF -DCMAKE_INSTALL_PREFIX=../release ..
make -j8;
make install
报错:undefined reference to `png_init_filter_functions_neon'
参考:https://blog.youkuaiyun.com/weixin_42330265/article/details/80484978
${HOME}/opencv-3.3.1/3rdparty/libpng/pngpriv.h
128 /*# if (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \*/
129 # if defined(PNG_ARM_NEON) && (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \