ming window 交叉编译_opencv3编译pc端及交叉编译arm端
環境: opensuse?? opencv3.4.1??? 交叉編譯器arm-openwrt-linux? 作者:帥得不敢出門
https://github.com/opencv/opencv/tree/3.4.1
選擇右邊的"clone or download"按鈕進行下載,選擇下載zip
我下的是opencv-3.4.1.zip, 3.4.1的版本號
https://github.com/opencv/opencv_contrib
下載,因為這個相對會小些,所以我選擇git直接下載,大家可以下載3.4.1的zip的包,版本要與opencv的版本一致就行,下zip會快些
git clone https://github.com/opencv/opencv_contrib
與opencv同一文件夾下
解壓
然后cd opencv-3.4.1
編譯pc端的:
mkdir build && cd build
編譯
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules/ ../
如果要編譯python3的請在cmake 后面加-D BUILD_opencv_python3=ON
make -j4
出錯:
opencv-3.4.1/modules/python/src2/cv2.cpp:14:10: fatal error: numpy/ndarrayobject.h: 沒有那個文件或目錄
#include
compilation terminated.
出錯:
-- Could NOT find JNI (missing: JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH)
-- Could NOT find Matlab (missing: MATLAB_MEX_SCRIPT MATLAB_INCLUDE_DIRS MATLAB_ROOT_DIR MATLAB_LIBRARIES MATLAB_LIBRARY_DIRS MATLAB_MEXEXT MATLAB_ARCH MATLAB_BIN)
-- VTK is not found. Please set -DVTK_DIR in CMake to VTK build directory, or to VTK install subdirectory with VTKConfig.cmake file
-- Looking for dlerror in dl
-- Looking for dlerror in dl - found
-- Caffe:?? NO
-- Protobuf:?? NO
-- Glog:?? NO
CMake Error at /home/zm/下載/opencv_contrib/modules/datasets/CMakeLists.txt:5 (ocv_append_source_files_cxx_compiler_options):
Unknown CMake command "ocv_append_source_files_cxx_compiler_options".
這是因為open_contrib版本與opencv版本不一致導致,進入open_contrib源碼目錄,執行git checkout 3.4.1,或者官網下載open_contrib.3.4.1.zip
解決方法:
安裝python2-numpy-devel
編譯成功后安裝
sudo make install
編譯arm端 :
cp platforms/linux/arm-gnueabi.toolchain.cmake platforms/linux/arm-openwrt.toolchain.cmake
編輯platforms/linux/arm-openwrt.toolchain.cmake
因為我的交叉編譯器前綴是xx
set(GNU_MACHINE "arm-linux-gnueabi" CACHE STRING "GNU compiler triple")
改成
set(GNU_MACHINE "arm-openwrt-linux" CACHE STRING "GNU compiler triple")
mkdir build_openwrt
cd build_openwrt
cmake -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules -DCMAKE_INSTALL_PREFIX=./install -DCMAKE_TOOLCHAIN_FILE="../platforms/linux/arm-openwrt.toolchain.cmake" -DCMAKE_CXX_FLAGS="-DTBB_USE_GCC_BUILTINS=1 -D__TBB_64BIT_ATOMICS=0 -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4"? -DSOFTFP=ON -DWITH_OPENCL=OFF -DWITH_TBB=ON? -DWITH_V4L=ON -DHAVE_CAMV4L2=ON -DENABLE_VFPV3=ON -DENABLE_NEON=ON -DBUILD_TESTS=OFF -DINSTALL_PYTHON_EXAMPLES=OFF -DBUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=Release -DWITH_FFMPEG=ON -DHAVE_FFMPEG=ON ../
#-D FFMPEG_INCLUDE_DIR="/home/zengming/download/ffmpeglib/include" -D FFMPEG_LIB_DIR="/home/zengming/download/fmpeglig/lib" ../
如果不加-DSOFTFP=ON有可能會出現找不到交叉編譯器的情況
-- The CXX compiler identification is GNU 7.3.1
-- The C compiler identification is GNU 7.3.1
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- broken
CMake Error at /usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:45 (message):
The C++ compiler
"/usr/bin/c++"
開始編譯
make -j4
make install
總結
以上是生活随笔為你收集整理的ming window 交叉编译_opencv3编译pc端及交叉编译arm端的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 海尔一体机怎么从u盘装系统 海尔一体机如
- 下一篇: 怎么做uefi系统u盘启动 制作uefi