1. 程式人生 > >嵌入式Linux所需要做的交叉編譯庫檔案(以lib264為例)

嵌入式Linux所需要做的交叉編譯庫檔案(以lib264為例)

如果需要使用開源的庫,比如X264在你的專案中,最後程式碼要移植到開發板上,那麼需要用交叉編譯鏈對庫檔案

進行交叉編譯。使構一致,否則程式碼在開發板上無法執行。

以libx264.a為例

1.下載x264的壓縮包,解壓到資料夾中。

2.進入資料夾進行配置

./configure --enable-static --host=arm-linux --disable-asm

需要配置哪些功能你需要用,哪些不需要用,比如用程序要加上--enable-pthread

我預設的上面的配置。

3.之後make 同時改變編譯鏈CC

make CC=arm-hismall-linux-gcc AR=arm-hismall-linux-ar LD=arm-hismall-linux-ld RANLIB=arm-hismall-linux-ranlib STRIP=arm-hismall-linux-strip

/ /  目的是代替預設的gcc編譯器 使用arm-linux-gcc編譯器

我用的arm-linux-gcc

因此用 make CC=arm-linux-gcc AR=arm-linux-ar LD=arm-linux-ld RANLIB=arm-linux-ranlib STRIP=arm-linux-strip

4.之後發現編譯出現問題,ar後面沒空格導致出錯,手動在ar和rc之間加上空格繼續編譯

arm-linux-ar rc libx264.a common/mc.o common/predict.o common/pixel.o common/macroblock.o 
common/frame.o common/dct.o common/cpu.o common/cabac.o common/common.o common/osdep.o 
common/rectangle.o common/set.o common/quant.o common/deblock.o common/vlc.o 
common/mvpred.o common/bitstream.o encoder/analyse.o encoder/me.o encoder/ratecontrol.o 
encoder/set.o encoder/macroblock.o encoder/cabac.o encoder/cavlc.o encoder/encoder.o 
encoder/lookahead.o common/threadpool.o

5.完成中斷後剩下的工作   

arm-linux-ranlib libx264.a    (用於產生x264-config.h檔案)

make install-lib-static


6.之後就可以把產生的libx264.a、x264.h、x264-config.h拷到你要用的資料夾中。