1、安裝交叉編譯器
在電腦上創建工作文件夾。
mkdir ~/raspi
cd ~/raspi
在linaro上下載交叉編譯工具鏈,包括gcc、runtime、sysroot三項:
https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/arm-linux-gnueabihf/
下載後解壓併合並,放在~/raspi/cross-compile-tool/目錄下
如果電腦上沒有C/C++編譯環境,執行:
sudo apt-get install build-essential
如果是openSUSE,執行:
sudo zypper install -t pattern devel_basis
使64位系統兼容32位的庫:
sudo apt install lib32ncurses5 lib32z1
2、解壓opencv-4.10源碼
3、cd opencv-4.10,創建 release和install文件夾
mkdir release
mkdir install
4、安裝和運行cmake-gui
sudo apt-get install cmake
sudo apt-get install cmake-qt-gui
運行cmake-gui
5、配置cmake
選好源碼目錄
選好編譯目錄
單擊Configure
自定義交叉編譯選項
注意Operating System裏填Linux
Processor填arm
Compilers填樹莓派交叉編譯的gcc和g++
Target root: 注意填的交叉編譯根目錄
勾選BUILD_JPEG、BUILD_PNG
MAKE_BUILD_TYPE 輸入Release
MAKE_INSTALL_PREFIX 選擇你想要安裝的目錄,這裏是源碼下剛纔創建的install目錄
單擊Configure,接着單擊Generate
如果配置沒問題,就會出現Configuring done和Generating done,但是如果這時候你cd 到release目錄去make是有問題的
還需要改下CmakeCache.txt
找到CMAKE_EXE_LINKER_FLAGS:STRING= , 加上-pthread -ldl -lrt
CMAKE_EXE_LINKER_FLAGS:STRING=-pthread -ldl -lrt
重新加載、配置、生成
在release目錄下,-j4會編譯得更快,如果你有八核,就開-j8
sudo make -j4
編譯成功後
sudo make install
進入install目錄可以看到
進入lib可以看到opencv動態庫已交叉編譯成功