一 、交叉编译jpeg库
1.下载源码tar.gz
2. 源码目录下执行 jpeglib配置文件
./configure CC=arm-none-linux-gnueabihf-gcc LD=arm-none-linux-gnueabihf-ld --prefix=/work/jpeg_arm_lib --exec-prefix=/work/jpeg_arm_lib --enable-shared --enable-static --host=arm-none-linux-gnueabihf
符号 | 说明 |
---|---|
CC | 编译所使用的编译器 |
LD | 编译所使用的链接器 |
Prefix | jpeglib库的安装目录 |
Exec-prefix | 可执行文件的目录 |
Enable-shared | 编译为动态库 |
Enable-static | 编译为静态库 |
3.make 编译、 sudo make install安装
二、Linux下jpeg库移植-编译APP
1.确定交叉编译器安装成功并配置到环境目录
arm-none-linux-gnueabihf-gcc -v
2.Makefile文件添加编译连接路径
LDFLAGS := -L/work/jpeg_arm_lib/lib -ljpeg
3.交叉编译的时候头文件默认搜索路径与正常编译有所不同,要先确定交叉编译器的目录
echc'main(){}'| /usr/local/arm/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gcc -E -v-
4.将/work/jpeg_arm_lib/include头文件拷贝到交叉编译器的目录
5.Make 编译App文件
三、开发板下jpeg库移植-运行APP
.将编译后的库文件移动到开发板挂载文件目录
将/work/jpeg_arm_lib下库文件,tar打包复制到,开发板挂载文件目录/usr/lib下
(使用Buildroot构建的根文件系统下可能有jpeg库,删除后使用新编译得到的)
sudo tar -czf lib.tar.gz ./*
sudo tar -xzf lib.tar.gz -c /home/jcl/linux/nfs/rootfs/usr/lib
测试
将/work/jpeg_arm_lib下, bin 目录下的所有测试工具拷贝到开发板
开发板运行djpeg -help 有反应代表移植成功
参考教程:
https://blog.csdn.net/chengfei609/article/details/46318275
https://cloud.tencent.com/developer/article/1997282
https://blog.csdn.net/qq_53144843/article/details/124524969