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动态库已交叉编译成功