本文适应于32位或者64位ARM交叉编译,以一般交叉编译采用Linux作为主机,其方法有
1、linux下直接有交叉编译环境,该方法适合于对开发版熟悉系统,某些特定的系统。
2、linux下通过远程访问连接到开发版,使用开发版的镜像做编译,该方法适合于一般的ARM开发版,编译过程中如果无线局域网不好的话,较慢。
主要介绍第二种方法:参考http://studiow.cf/blog/post/how-to-cross-compile-opencv-for-armbian-with-gtk(以前打的开)
以OpenCV交叉编译为例:
32位环境g++-arm-linux-gnueabihf 64位环境g++-aarch64-linux-gnu
1 在主机linux上
sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf pkg-config-arm-linux-gnueabihf
2 连接ARM开发版
mkdir /home/{your_username}/armbian/mntsysroot
sudo sshfs {armbian_username}@{your.armbian.machine.ip}:/ /home/{your_username}/armbian/mntsysroot/ -o transform_symlinks -o allow_other
3 创建镜像文件
sudo ln -s /home/{your_username}/armbian/mntsysroot/usr/lib/arm-linux-gnueabihf/ /usr/lib/arm-linux-gnueabihf
sudo ln -s /home/{your_username}/armbian/mntsysroot/lib/arm-linux-gnueabihf/ /lib/arm-linux-gnueabihf
sudo ln -s /home/{your_username}/armbian/mntsysroot/usr/share /usr/share/arm-linux-gnueabihf
sudo ln -s /home/{your_username}/armbian/mntsysroot/usr/include/arm-linux-gnueabihf /usr/include/arm-linux-gnueabihf
4 在ARM开发版上安装
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libgtk2.0-dev libatlas-base-dev gfortran python2.7-dev python3-dev ffmpeg
5 在PC机上
cd ~/armbian
git clone https://github.com/opencv/opencv.git
sudo apt-get install cmake cmake-gui
cd ~/armbian/opencv
mkdir build && cd build
cmake-gui ..
选择use cross compiling toolchain file 对应32位环境arm-linux-gnueabihf 64位环境aarch64-linux-gnu