ARM交叉編譯鏈的製作

2021-04-14 00:05:26 字數 2306 閱讀 2084

什麼是交叉編譯這裡就不用多說了,這裡給出兩種製作的方法。

這種做法操作很簡單,但是不能根據自己的需求去定義,只能選擇已經編譯好的東西。

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 新增環境...