交叉編譯package

1. 設置環境變量 ,加上交叉編譯工具鏈的路徑

如:export PATH=/usr/local/poky/eabi-glibc/arm/bin:$PATH
export PKG_CONFIG_SYSROOT_DIR=/usr/local/poky/eabi-glibc/arm/arm-poky-linux-gnueabi
export PKG_CONFIG_PATH=/usr/local/poky/eabi-glibc/arm/arm-poky-linux-gnueabi/lib/pkgconfig
export CONFIG_SITE=/usr/local/poky/eabi-glibc/arm/site-config
可寫成腳本文件, 然後  sourc *.sh

 

2.下載的package解壓後,./configure --host=arm-poky-linux-gnueabi    host=交叉工具鏈接的名字。要想安裝到交叉編譯工具鏈裏 加 --prefix=$(cross_dir).

此過程可能出現的問題: 

(a)configure 不支持交叉編譯, 然後退出。  可修改其文件,將cross-compiling = no . 欺騙一下, 或者將退出改爲continue , 看具體情況。

(b) 需要依賴別的包, 無他, 下載, 編譯。。

 

3,make 

此過程可能出現的問題:

(a)需要鏈接的動態庫爲本機上的, 並不是交叉編譯環境的.so文件, 目前知道的解決辦法爲另名本機/usr/lib等庫所需.so文件對應的.la文件。再make, 會去交叉編譯環境目錄下找.so文件。。

(b)一般不支持交叉編譯的包, 都會出現的問題。會先編譯個應用程序, 然後利用此應用程序進行後面的編譯。而交叉編譯出來的此應用程序爲arm指令。並不能運行。解決辦法是先在本機環境下編譯一次, 然後拷貝此程序到相應目錄,但要改名。同時到Makefile文件中修改需要用到此程序的名字爲本機編譯下的程序名。

 

4. sudo make install

 

5,安裝後,要將$(cross_dir)/lib/pkgconfig 中對應的.pc文件中的 --prefix=$(cross_dir)的交叉路徑刪掉,可該爲--prefix=(空格)。 這樣,在以後的交叉編譯的程序用到此庫時, 才能正確知道此庫。。

 

6.over

發佈了19 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章