如果需要使用開源的庫,比如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拷到你要用的文件夾中。