《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 建立針對arm-linux的交叉編譯環境
建立針對arm-linux的交叉編譯環境
摘要: 交叉編譯是嵌入式開發過程中的一項重要技術,它的主要特征是某機器中執行的程序代碼不是在本機編譯生成,而是由另一臺機器編譯生成,一般把前者稱為目標機,后者稱為主機。采用交叉編譯的主要原因在于,多數嵌入式目標系統不能提供足夠的資源供編譯過程使用,因而只好將編譯工程轉移到高性能的主機中進行。
Abstract:
Key words :

 交叉編譯環境介紹

交叉編譯是嵌入式開發過程中的一項重要技術,它的主要特征是某機器中執行的程序代碼不是在本機編譯生成,而是由另一臺機器編譯生成,一般把前者稱為目標機,后者稱為主機。采用交叉編譯的主要原因在于,多數嵌入式目標系統不能提供足夠的資源供編譯過程使用,因而只好將編譯工程轉移到高性能的主機中進行。

linux下的交叉編譯環境重要包括以下幾個部分:

針對目標系統的編譯器gcc

針對目標系統的二進制工具binutils

目標系統的標準c庫glibc

目標系統的linux內核頭文件

交叉編譯環境的建立步驟

下載源代碼

下載包括binutils、gcc、glibc及linux內核的源代碼(需要注意的是,glibc和內核源代碼的版本必須與目標機上實際使用的版本保持一致),并設定shell變量PREFIX指定可執行程序的安裝路徑。

編譯binutils

首先運行configure文件,并使用--prefix=$PREFIX參數指定安裝路徑,使用--target=arm-linux參數指定目標機類型,然后執行make install。

配置linux內核頭文件

首先執行make mrproper進行清理工作,然后執行make config ARCH=arm(或make menuconfig/xconfig ARCH=arm)進行配置(注意,一定要在命令行中使用ARCH=arm指定cpu架構,因為缺省架構為主機的cpu架構),這一步需要根據目標機的實際情況進行詳細的配置,筆者進行的實驗中目標機為HP的ipaq-hp3630 PDA,因而設置system type為SA11X0,SA11X0 Implementations中選擇Compaq iPAQ H3600/H3700。

配置完成之后,需要將內核頭文件拷貝到安裝目錄: cp -dR include/asm-arm $PREFIX/arm-linux/include/asm cp -dR include/linux $PREFIX/arm-linux/include/linux

第一次編譯gcc

首先運行configure文件,使用--prefix=$PREFIX參數指定安裝路徑,使用--target=arm-linux參數指定目標機類型,并使用--disable-threads、--disable-shared、--enable-languages=c參數,然后執行make install。這一步將生成一個最簡的gcc。由于編譯整個gcc是需要目標機的glibc庫的,它現在還不存在,因此需要首先生成一個最簡的gcc,它只需要具備編譯目標機glibc庫的能力即可。

交叉編譯glibc

這一步驟生成的代碼是針對目標機cpu的,因此它屬于一個交叉編譯過程。該過程要用到linux內核頭文件,默認路徑為$PREFIX/arm-linux/sys-linux,因而需要在$PREFIX/arm-linux中建立一個名為sys-linux的軟連接,使其內核頭文件所在的include目錄;或者,也可以在接下來要執行的configure命令中使用--with-headers參數指定linux內核頭文件的實際路徑。

configure的運行參數設置如下(因為是交叉編譯,所以要將編譯器變量CC設為arm-linux-gcc):

CC=arm-linux-gcc ./configure --prefix=$PREFIX/arm-linux --host=arm-linux --enable-add-ons

最后,按以上配置執行configure和make install,glibc的交叉編譯過程就算完成了,這里需要指出的是,glibc的安裝路徑設置為$PREFIXARCH=arm/arm-linux,如果此處設置不當,第二次編譯gcc時可能找不到glibc的頭文件和庫。

第二次編譯gcc

運行configure,參數設置為--prefix=$PREFIX --target=arm-linux --enable-languages=c,c++。

運行make install。

到此為止整個交叉編譯環境就完全生成了。

幾點注意事項

第一點、在第一次編譯gcc的時候可能會出現找不到stdio.h的錯誤,解決辦法是修改gcc/config/arm/t-linux文件,在TARGET_LIBGCC2_CFLAGS變量的設定中增加-Dinhibit_libc和-D__gthr_posix_h。

第二點、對與2.3.2版本的glibc庫,編譯linuxthread/sysdeps/pthread/sigaction.c時可能出錯,需要通過補丁glibc-2.3.2-arm.patch解決:執行patch -p1 < glibc-2.3.2-arm.patch

第三點、第二次編譯gcc時可能會出現libc.so的錯誤,這是需要利用文本編輯器手動修改libc.so。

 

本文來源于與非網 http://www.eefocus.com
原文地址:http://www.eefocus.com/article/11-03/2075521299493313.html

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲电影第三页| 亚洲视频综合在线| 国产精品国内视频| 欧美日韩国产免费观看| 免费在线观看日韩欧美| 久久久亚洲国产美女国产盗摄| 亚洲女人av| 亚洲小说春色综合另类电影| 亚洲免费电影在线观看| 亚洲激情黄色| 亚洲日本免费| 亚洲人成毛片在线播放| 亚洲国产成人不卡| 亚洲国产美女| 亚洲国产专区校园欧美| 亚洲激情综合| 亚洲国产精品尤物yw在线观看| 欧美一区二区在线视频| 亚洲欧美综合国产精品一区| 亚洲伊人久久综合| 亚洲一区久久久| 亚洲综合色在线| 亚洲欧美日韩国产成人精品影院| 亚洲一区二区免费看| 亚洲性夜色噜噜噜7777| 在线亚洲自拍| 亚洲在线电影| 日韩视频在线一区| 一区二区激情小说| 亚洲一区国产一区| 午夜精品福利视频| 欧美在线国产精品| 亚洲国产成人精品女人久久久 | 国产在线播放一区二区三区| 国产日韩av在线播放| 国产在线不卡视频| 在线精品观看| 亚洲精选国产| 亚洲少妇诱惑| 亚洲午夜视频| 羞羞漫画18久久大片| 久久精品一区四区| 日韩一级黄色av| 亚洲欧美中文日韩v在线观看| 欧美一区二区三区四区在线观看 | 欧美综合第一页| 美女久久网站| 欧美日韩精品免费在线观看视频| 欧美性生交xxxxx久久久| 国产女人18毛片水18精品| 国产一区二区三区久久精品| 亚洲第一页自拍| 99精品欧美一区| 亚洲伦理在线免费看| 亚洲综合精品| 91久久国产精品91久久性色| 夜夜嗨av一区二区三区网站四季av| 亚洲制服丝袜在线| 久久亚洲视频| 欧美日韩一区二区三区在线观看免 | 欧美日韩亚洲另类| 国产乱肥老妇国产一区二| 狠狠狠色丁香婷婷综合激情| 亚洲欧洲日本mm| 亚洲一级影院| 亚洲欧洲日本在线| 午夜激情综合网| 媚黑女一区二区| 国产精品高潮呻吟久久av无限| 国产一区999| 99视频+国产日韩欧美| 欧美在线不卡视频| 一区二区三区欧美激情| 久久久99精品免费观看不卡| 欧美日韩视频第一区| 激情五月综合色婷婷一区二区| 一区二区三区日韩欧美精品| 亚洲国产婷婷香蕉久久久久久99| 欧美亚洲免费电影| 欧美日韩福利| 狠久久av成人天堂| 亚洲免费人成在线视频观看| 久久精品国产亚洲a| 小辣椒精品导航| 欧美精品在线观看91| 国产亚洲精品一区二区| 99精品热视频| 亚洲精品乱码久久久久久蜜桃91 | 亚洲欧美日韩精品久久奇米色影视 | 亚洲一级在线观看| 艳女tv在线观看国产一区| 久久裸体艺术| 国产精品爽爽ⅴa在线观看| 亚洲精品乱码久久久久久蜜桃91| 欧美主播一区二区三区美女 久久精品人 | av成人免费在线| 美女精品自拍一二三四| 国产偷国产偷精品高清尤物| 99精品国产在热久久下载| 亚洲三级影院| 久久噜噜噜精品国产亚洲综合| 国产精品日韩欧美一区| 日韩一本二本av| 日韩视频在线你懂得| 久久影院午夜片一区| 国产欧美日韩亚洲精品| 亚洲在线观看免费| 亚洲欧美视频| 国产精品久久| 在线亚洲一区观看| 亚洲一级片在线看| 欧美日本一区二区三区| 亚洲高清自拍| 亚洲日本激情| 欧美大片专区| 亚洲福利视频专区| 亚洲黄色有码视频| 蜜桃av综合| 亚洲第一精品夜夜躁人人躁 | 亚洲欧美不卡| 国产精品二区二区三区| 正在播放欧美视频| 亚洲在线视频一区| 国产精品国产成人国产三级| 中文在线一区| 亚洲欧美视频一区二区三区| 国产精品久久久久影院亚瑟| 亚洲直播在线一区| 欧美在线视频一区| 国产亚洲一区二区三区| 久久黄色网页| 欧美v日韩v国产v| 91久久极品少妇xxxxⅹ软件| 亚洲精品自在在线观看| 欧美激情中文不卡| 国产日韩欧美一区二区三区在线观看| 亚洲欧美日韩精品久久久久| 欧美自拍丝袜亚洲| 韩国成人精品a∨在线观看| 亚洲国产精品久久久久婷婷884| 麻豆精品传媒视频| 亚洲经典在线| 亚洲自啪免费| 国产欧美在线观看| 亚洲福利小视频| 欧美福利视频| 在线亚洲精品福利网址导航| 欧美一区二区高清| 国外成人性视频| 亚洲精品专区| 国产精品久久久久久久久免费| 亚洲男人影院| 久久综合亚洲社区| 亚洲欧洲在线视频| 性xx色xx综合久久久xx| 黑人中文字幕一区二区三区| 亚洲美女网站| 国产毛片精品国产一区二区三区| 亚洲第一区在线观看| 欧美精品一区二| 亚洲欧美国产精品专区久久| 老司机成人在线视频| 日韩午夜av在线| 欧美一区永久视频免费观看| 亚洲第一页中文字幕| 亚洲夜间福利| 国内视频精品| 亚洲一区二区日本| 国产一区亚洲| 一本色道**综合亚洲精品蜜桃冫| 国产精品久久久久久久久久尿| 久久黄色小说| 欧美视频在线免费看| 久久精品av麻豆的观看方式| 欧美日韩国产精品一区二区亚洲| 午夜精品久久久久久久久久久| 免费的成人av| 亚洲香蕉网站| 欧美精品电影在线| 午夜伦欧美伦电影理论片| 欧美激情一区| 欧美一级视频| 欧美日韩一区二区三区在线| 久久精品一区四区| 国产精品男gay被猛男狂揉视频| 亚洲黄色天堂| 国产日韩欧美日韩| 亚洲天堂免费在线观看视频| 黄网站色欧美视频| 午夜精品久久久久影视 | 欧美在线在线| 99国产欧美久久久精品| 久久久久久一区二区| 一区二区av| 欧美大片在线影院| 久久大逼视频| 国产精品日韩二区| 一区二区三区国产精华| 狠狠色综合一区二区| 欧美在线播放视频|