一 、交叉編譯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