0 目的
因项目上有使用jpeg-turbo的需求,用的aarch64的平台,需要使用交叉编译工具来获取libturbojpeg.so。
1 libturbojpeg下载
libturbojpeg源码git地址:GitHub - libjpeg-turbo/libjpeg-turbo: Main libjpeg-turbo repository
可以选择git clone方式下载:
git clone https://github.com/libjpeg-turbo/libjpeg-turbo.git
或者下载源码包:
2 交叉编译
2.1 环境准备
如果PATH环境变量中没有添加aarch64-linux-gnu-相关的工具路径,可以先提前导入,或者在camke的时候写绝对路径。
export PATH=$PATH:/opt/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/bin
如果有些工具库也要依赖的话,也记得导入一下LD_LIBRARY_PATH环境变量。
进入libjpeg-turbo源码根目录,创建build.sh文件
cmake \
-DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc \
-DCMAKE_C_FLAGS=-fPIC \
-DCMAKE_INSTALL_PREFIX=./install
2.2 编译
2.2.1 build
./build.sh
2.2.2 make
make
2.2.3 make install
make insatll
3 结果
生成的相关文件在源码根目录的install目录下
libjpeg-turbo/install$ tree
.
├── bin
│ ├── cjpeg
│ ├── djpeg
│ ├── jpegtran
│ ├── rdjpgcom
│ ├── tjbench
│ └── wrjpgcom
├── include
│ ├── jconfig.h
│ ├── jerror.h
│ ├── jmorecfg.h
│ ├── jpeglib.h
│ └── turbojpeg.h
├── lib
│ ├── cmake
│ │ └── libjpeg-turbo
│ │ ├── libjpeg-turboConfig.cmake
│ │ ├── libjpeg-turboConfigVersion.cmake
│ │ ├── libjpeg-turboTargets-release.cmake
│ │ └── libjpeg-turboTargets.cmake
│ ├── libjpeg.a
│ ├── libjpeg.so -> libjpeg.so.62
│ ├── libjpeg.so.62 -> libjpeg.so.62.4.0
│ ├── libjpeg.so.62.4.0
│ ├── libturbojpeg.a
│ ├── libturbojpeg.so -> libturbojpeg.so.0
│ ├── libturbojpeg.so.0 -> libturbojpeg.so.0.3.0
│ ├── libturbojpeg.so.0.3.0
│ └── pkgconfig
│ ├── libjpeg.pc
│ └── libturbojpeg.pc
└── share
├── doc
│ └── libjpeg-turbo
│ ├── LICENSE.md
│ ├── README.ijg
│ ├── README.md
│ ├── example.c
│ ├── libjpeg.txt
│ ├── structure.txt
│ ├── tjexample.c
│ ├── usage.txt
│ └── wizard.txt
└── man
└── man1
├── cjpeg.1
├── djpeg.1
├── jpegtran.1
├── rdjpgcom.1
└── wrjpgcom.111 directories, 39 files
确认一下是否是aarch64文件