opencv移植
注:本篇博客已經棄用,請不要浪費時間閱讀,筆者有空會更新最新的移植教程~ 最新文章移植opencv3.2.0含opencv_contrib
一. 移植依賴庫
主要需要移植如下幾個依賴庫:
下載地址,鏈接: https://pan.baidu.com/s/1X_Dogbvo_vY4X8zLBRpVcA 提取碼: m6f2
編譯器版本:
虛擬機:
安裝編譯器可以參考:Ubuntu20.04安裝arm-linux-gcc4.4.3交叉編譯器
1. zlib交叉編譯
先確定好依賴庫安裝的路徑,筆者是 /home/incipe/opencv_depend
./configure --prefix=/home/incipe/opencv_depend
修改 Makefile
make && make install
2. libjpeg交叉編譯
./configure --host=arm-linux-gnueabi CC=arm-linux-gnueabi-gcc --prefix=/home/incipe/opencv_depend --enable-shared --enable-static
make && make install
3. libpng交叉編譯
./configure --host=arm-linux --prefix=/home/incipe/opencv_depend --enable-shared --enable-static
make && install
4. yasm交叉編譯
CC=arm-linux-gnueabi-gcc ./configure --enable-shared --host=arm-linux-gnueabi --disable-asm --prefix=/home/incipe/opencv_depend
make && make install
5. libx264交叉編譯
CC=arm-linux-gnueabi-gcc ./configure --enable-shared --host=arm-linux-gnueabi --disable-asm --prefix=/home/incipe/opencv_depend
make && make install
6. libxvid交叉編譯
解壓 xvidcore_1.3.3.orig.tar.gz 進入子文件夾。
cd ./build/generic
./configure --prefix=/home/incipe/opencv_depend --host=arm-linux-gnueabihf --disable-assembly
make && make install
7. ffmpe交叉編譯
./configure --prefix=/home/incipe/opencv_depend --enable-shared --disable-static --enable-gpl --enable-cross-compile --arch=arm --disable-stripping --target-os=linux --enable-libx264 --enable-libxvid --cc=arm-linux-gnueabi-gcc --enable-swscale --extra-ldflags=-L/home/incipe/opencv_depend/lib --extra-cflags=-I/home/incipe/opencv_depend/include
make && make install
這個過程有點久~
二. 把依賴庫拷貝到arm-linux-gnueabi路徑下
cp /home/incipe/opencv_depend/include /usr/local/bin/arm-2014.05/arm-none-linux-gnueabi/ -rf cp /home/incipe/opencv_depend/lib /usr/local/bin/arm-2014.05/arm-none-linux-gnueabi/ -rf三. 交叉編譯安裝opencv3.2.0
官網下載地址:https://opencv.org/releases/
解壓后進入 opencv3.2.0 路徑,新建 build 文件夾,cd build
vim toolchain.cmake
###########user defined############# set( CMAKE_SYSTEM_NAME Linux ) set( CMAKE_SYSTEM_PROCESSOR arm ) set( CMAKE_C_COMPILER arm-linux-gnueabi-gcc ) set( CMAKE_CXX_COMPILER arm-linux-gnueabi-g++ ) ###########user defined############# set( CMAKE_FIND_ROOT_PATH "/home/incipe/opencv_depend" ) set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER ) set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) ######################################保存退出后,運行如下命令:
cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake ../
配置cmake
如果沒有 cmake-gui 先安裝:
sudo apt-get install cmake-qt-gui
在 build 目錄下運行 cmake-gui
增加源代碼路徑,編譯路徑和安裝路徑。
接下來取消這些選項:
- 去掉 WITH_CUDA
- 去掉 WITH_GTK
- 去掉 WITH_1394
- 去掉 WITH_GSTREAMER
- 去掉 WITH_LIBV4L
- 去掉 WITH_TIFF
- 去掉 BUILD_OPENEXR
- 去掉 WITH_OPENEXR
- 去掉 BUILD_opencv_ocl
- 去掉 WITH_OPENCL(注意區分OPENGL與OPENCL的區別)
- 去掉 WITH FFMPEG
取消之后點擊 Configure 之后再點擊 Generate 即可。
關閉 cmake-gui
修改CMakeCache.txt
編譯安裝
sudo make
sudo make install
這個耗時非常長!!!
安裝完畢之后在 build 目錄下會有 install 文件夾包含 include 和 lib ,就是我們需要的頭文件和庫文件了。
把 include 下的內容拷貝到 /usr/local/include 目錄下。
把 lib 下的內容拷貝到 /usr/local/bin/arm-2014.05/arm-none-linux-gnueabi/lib 即可。
拷貝的時候記得加上 -rf 選項,這樣會把 pkgconfig 也一起拷貝,pkgconfig 目的是為了方便編譯的。
詳解:https://www.cnblogs.com/woshijpf/articles/3840840.html
四. 編譯opencv代碼
arm-linux-gnueabi-gcc -o puzzle puzzle.o -I /usr/local/include `pkg-config --cflags --libs opencv` -std=c++11五. 總結與注意
本博客參考 虛擬機交叉編譯openCV詳細步驟及bug解決詳解
因為這篇博客是后面補上的,所以中間具體遇到什么問題不記得了(問題應該不多,之前是因為安裝opencv2.4,所以總是安裝不上,換了好幾個版本,opencv3.2.0終于成功了),如果有安裝問題的,歡迎留言。
總結
- 上一篇: 杜比服务器系统安装教程,win10杜比音
- 下一篇: FFmpeg安装及将rtsp流转hls协