背景
实现ubuntu client和Arm 板子server之间的通信,server下发图片,client端不停接收图片做预览效果,起初使用网络传输opencv的mat,发现数据比较大,影响预览效果,所以采用libjpeg库压缩并显示,这就需要client端和server端都需要链接opencv和jpeg的链接库,就需要交叉编译。
本地环境:ubuntu16.04
opencv
install dep
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
本地编译方法
- 下载opencv源码3.4.6版本,我自己下载的 3.4.6版本,高版本不敢随便用...
- 下载成功后进入opencv目录,
cd opencv-3.4.6
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=/usr/local ..
make && make install
这些操作后就会编译除opencv的动态链接库,并且拷贝到了/usr/local目录下。
交叉编译方法
1.同上
- 同上
3.进入opencv-3.4.6/platform/linux目录,里面有很多工具链的配置文件,交叉编译前提是需要安装交叉编译的工具链,我的工具链安装方法:
sudo apt-get install gcc-aarch64-linux-gnu
sudo apt-get install g++-aarch64-linux-gnu
cd opencv-3.4.6/platform/linux
mkdir build_arm && cd build_arm
cmake -DCMAKE_TOOLCHAIN_FILE=../*.cmake(此处选择工具链的配置文件) ../../..
make
即可编译成功
libjpeg
本地编译方法
- 下载 源码
- 进入jpeg 源码目录
./configure --prefix=./build(此处需要绝对路径,.是举例而已)
make && make install
交叉编译方法
1.同上
2.同上
./configure --prefix=./build_arm CC=aarch64-linux-gnu-gcc --host=aarch64-linux-gnu
make && make install
网友评论