什麼是交叉編譯這裡就不用多說了,這裡給出兩種製作的方法。
這種做法操作很簡單,但是不能根據自己的需求去定義,只能選擇已經編譯好的東西。
2. 自己動手利用crosstool來製作。
b. 以root建立目錄,存放生成的交叉編譯鏈
改變該目錄的 所有者為普通使用者
例如,存放生成的交叉編譯鏈目錄為/opt/crosstool,如下所示:
sudo mkdir /opt/crosstool
sudo chown $user /opt/crosstool
c. 修改針對目標板的指令碼檔案。
$sudo vi demo-arm.sh
(1)這幾個環境變數可以根據實際情況修改
tarballs_dir=$home/downloads
result_top=/opt/crosstool
export tarballs_dir result_top
gcc_languages="c,c++"
export gcc_languages
(2)在若干行eval語句中選擇要建立的交叉編譯鏈的組合,去掉該行eval的#號。例如要做gcc為3.3.3,glibc為2.3.2的工具鏈
eval `cat arm.dat gcc-3.4.5-glibc-2.3.6.dat` sh all.sh --notest
d. 修改目標板指令碼檔案demo-arm.sh中eval那一行出現的體系結構的配置檔案
$sudo vi arm.dat
kernelconfig=`pwd`/arm.config
target=arm-unknown-linux-gnu
target_cflags="-o"
可以修改target變數為
target=arm-s3c2410-linux-gnu(你的arm型號)
e.修改目標板指令碼檔案demo-arm.sh中eval那一行出現的工具鏈的匹配檔案
$sudo vi gcc-3.4.5-glibc-2.3.6.dat
binutils_dir=binutils-2.15
gcc_dir=gcc-3.3.3
glibc_dir=glibc-2.3.2
linux_dir=linux-2.4.26
glibcthreads_filename=glibc-linuxthreads-2.3.2
以上變數要根據實際情況修改。不過
linux_dir=linux-2.6.12.1
gdb_dir=gdb-6.0
f.以普通使用者執行指令碼
$sudo sh demo-arm.sh
進入漫長的等待過程中……
3. 安裝完成後路徑設定和測試。
編輯~/.bash_profile,在其中export path前加入這樣一行, path=/opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-s3c2410-linux-gnu/bin:$path
,改完後我的是這樣的
# user specific environment and startup programs
path=$path:$home/bin
path=/opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-s3c2410-linux-gnu/bin:$path
export path
unset username
然後就好了。可以開始測試使用了。測試的方法很簡單,隨便找個程式原始碼編譯一下就好了。這裡用的這些編譯器生成的是二進位制檔案,和平時的gcc生成的可執行檔案並不相同。例如我測試時的檔案是test.c,
#include
int main()
file test
結果如下:
test: elf 32-bit lsb executable, arm, version 1 (arm), for gnu/linux 2.4.3, dynamically linked (uses shared libs), for gnu/linux 2.4.3, not stripped
如果出現這樣的結果說明交叉編譯環境已經安裝成功。否則…………重新想辦法吧……
來自:http://hi.baidu.com/yangyingchao/blog/item/1350e488bb803095a4c272b2.html
交叉編譯工具鏈製作
交叉編譯就是在乙個平台上生成另乙個平台上的可執行 二進位制。這兩個平台可以是不同的體系結構和不同的作業系統。例如,在嵌入式系統 c c 開發過程中,常常需要在 x86 x86 64 主機上編譯出可執行程式,給 arm或 powerpc 體系結構的裝置執行。交叉編譯的兩個概念 宿主機 host 編譯程...
製作交叉編譯工具鏈 1
交叉編譯環境是由編譯器 聯結器和直譯器組合成的綜合開發環境。交叉編譯工具主要包括針對目標系統的編譯器gcc 目標系統的二進位制工具binutils 目標系統的標準c庫glibc和目標系統的linux核心標頭檔案 安裝上述檔案,並設定變數 prefix 指定可執行程式的安裝路徑 執行configure...
製作交叉編譯工具鏈 2
解壓crosstool ng tar jxvf crosstool ng 1.23.0 檢查依賴,完成依賴檢查後生成makefile configure prefix home forlinx crosstool install 編譯,編譯成功後進行安裝 make make install 新增環境...