arm-none-linux-gnueabi-gcc 移植,匯總(之一):交叉編譯工具鏈arm-none-linux-gnueabi-, Qt交叉編譯安裝和移植,Qt桌面版編譯安裝,QTcreator...

1. 交叉編譯工具鏈arm-none-linux-gnueabi-的安裝

由於用的是ZLG的iMX257開發板,交叉編譯工具鏈使用的是ZLG提供的,並非自己親自編譯的。下面是開發板配套文檔中的安裝過程。

在“Ubuntu 64-bit 12.04 for EasyARM-iMX257.iso”基礎上安裝的 Linux 系統已經默認安裝了開發 EasyARM-iMX257 所需的交叉編譯工具鏈,用戶無需再執行安裝,如果用戶的

Linux 系統上未安裝這個工具鏈,則可以按照以下步驟進行安裝:

1)安裝 32 位的兼容庫和 libncurses5-dev 庫

在安裝交叉編譯工具之前需要先安裝 32 位的兼容庫和 libncurses5-dev 庫,安裝 32 兼容庫需要從 ubuntu 的源庫中下載,所以需要在 Linux 主機系統聯網的條件下,通過終端使用如下命令安裝:

vmuser@Linux-host ~$sudo apt-get install ia32-libs

若 Linux 主機系統沒有安裝 32 位兼容庫,在使用交叉編譯工具的時候可能會出現錯誤:

-bash: ./arm-none-linux-gnueabi-gcc: 沒有那個文件或目錄

在終端中使用如下命令則可以安裝 libncurses5-dev 庫。

vmuser@Linux-host ~$sudo apt-get install libncurses5-dev

如果沒有安裝此庫,在使用 make menucofig 時出現如下所示的錯誤:

*** Unable to find the ncurses libraries or the

*** required header files.

*** 'make menuconfig' requires the ncurses libraries.

***

*** Install ncurses (ncurses-devel) and try again.

***

make[1]: *** [scripts/kconfig/dochecklxdialog] 錯誤 1

make: *** [menuconfig] 錯誤 2

2)安裝交叉編譯工具鏈

將光盤資料中的“freescale-zlg.tar.bz2”文件通過 U 盤的方式拷貝到 Linux 主機的“/tmp”目錄下,然后執行如下命令進行解壓安裝交叉編譯工具鏈:

vmuser@Linux-host ~$ cd /tmp

vmuser@Linux-host /tmp$ sudo tar -jxvf freescale-zlg.tar.bz2 -C /opt/

vmuser@Linux-host /tmp$                 # 輸入 vmuser 用戶的密碼“vmuser”

執行完解壓命令后,交叉編譯工具鏈將被安裝到“/opt/freescale”目錄下。交叉編譯器的具體目錄是“/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin”,為了方便使用,還需將該路徑添加到 PATH 環境變量中,其方法為:修改“/etc/profile”文件,具體操作方法如下:

在終端中輸入如下指令

vmuser@Linux-host ~$ sudo vi /etc/profile                         # 若提示輸入密碼,則輸入“vmuser”

用 vi 編輯器打開“/etc/profile”文件后,在文件末尾增加如下一行內容:

export PATH=$PATH:/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin

文件修改並保存后,再在終端中輸入如下指令,更新環境變量,使設置生效,如圖4.54所示。

vmuser@Linux-host ~$ source /etc/profile

在終端輸入arm-none-linux-gnueabi-並按TAB鍵,如果能夠看到很多arm-none-linux-gnueabi-前綴的命令,則基本可以確定交叉編譯器安裝正確。

3.測試工具鏈

在“~/EasyAMR-iMX257”目錄下創建一個hello文件夾,並在該文件夾下創建hello.c文件(創建方法為:右鍵該目錄下空白處,在彈出的右鍵菜單中選擇“創建新文檔”,再在子菜

單下選擇“空白文檔”,然后將創建的空白文檔重命名為hello.c),然后右擊hello.c文件,選擇“使用文本編輯器打開”菜單打開hello.c文件,然后輸入如程序清單4.1所示內容。

程序清單4.1 Hello 程序清單

#include

int main(void)

{

int i;

for (i=0; i<5; i++) {

printf("Hello %d!\n", i);

}

return 0;

}

輸入完程序代碼后保存並關閉 hello.c 文件,然后按“Ctrl+Alt+T”啟動終端,輸入以下命令對 hello.c 進行編譯並查看編譯后生成文件的屬性:

vmuser@Linux-host ~$ cd /home/vmuser/EasyARM-iMX257/hello                                                                    #瀏覽到程序文件所在目錄

vmuser@Linux-host ~/EasyARM-iMX257/hello$ arm-none-linux-gnueabi-gcc hello.c -o hello                    #編譯 hello.c 文件

vmuser@Linux-host ~/EasyARM-iMX257/hello$ file hello                                                                                    #查看編譯生成的 hello 文件屬性

hello.c文件編譯后將輸出hello文件,終端執行命令及輸出文件如圖4.56所示。

通過終端命令運行的結果可知,hello 文件是 ARM 格式的可執行文件,說明arm-none-linux-gnueabi-工具鏈已經可以正常使用了。

下面可以嘗試通過前面學習到的 NFS 掛載方法,將 hello 文件放到 EasyARM-iMX257上面去運行,其基本操作驟如下:

3) 給目標板接上調試串口線及網線,並打開串口終端監聽串口數據,然后再給目標系統上電。

4) 目標系統(Linux 系統)上電后,通過串口終端登錄目標系統(用戶名為“root” ,無須輸入密碼),並設置目標系統的 IP 為 192.168.12.124(建議與 Linux 主機位於同一

網段,並能互相 ping 通,否則可能導致 NFS 掛載失敗),並測試目標系統與 Linux主機的網絡是否暢通。

root@EasyARM-iMX257 ~# ifconfig eth0 192.168.12.124

root@EasyARM-iMX257 ~# ping 192.168.12.123

5)目標系統與 Linux 主機網絡暢通后,通過發送如下命令可將主機的 NFS 共享目錄“EasyARM-iMX257”掛載到目標系統的/mnt 目錄下:

root@EasyARM-iMX257 ~# mount -t nfs 192.168.12.123:/home/vmuser/EasyARM-iMX257  /mnt -o nolock

6)NFS 掛載成功后,通過“cd”命令瀏覽到 hello 文件所在目錄,通過“./hello”命令運行 hello文件,具體命令如下:

root@EasyARM-iMX257 ~# cd /mnt/hello

root@EasyARM-iMX257 /mnt/hello# ./hello

hello程序運行后,將通過串口終端打印五行字符,測試結果如圖4.57所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值