《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 建立針對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亚洲国产精品_日韩亚洲一区二区
亚洲人成网站色ww在线| 性8sex亚洲区入口| 国产欧美日韩视频| 欧美日韩亚洲激情| 欧美成人免费va影院高清| 久久久久国产一区二区| 亚洲欧美日韩中文视频| 亚洲一区二区三区免费视频| 99这里只有久久精品视频| 亚洲精品日本| 亚洲二区视频| 亚洲国产精品成人| 亚洲成人在线视频播放 | 国内精品美女av在线播放| 国产日韩欧美一区在线| 国产日韩精品视频一区| 国产日韩欧美在线播放| 国产三区二区一区久久| 国产丝袜一区二区三区| 国产一区二区三区成人欧美日韩在线观看| 国产精品日韩精品欧美精品| 国产精品一区二区久久久| 国产精品一区免费在线观看| 国产情人节一区| 国产自产精品| 亚洲高清一二三区| 亚洲精品激情| 99精品黄色片免费大全| 一区二区三区.www| 亚洲午夜久久久久久久久电影院| 亚洲色图自拍| 午夜一级在线看亚洲| 欧美中文字幕第一页| 亚洲国产天堂久久综合网| 亚洲美女黄色片| 亚洲一品av免费观看| 欧美一级黄色网| 久久夜色精品国产噜噜av| 麻豆精品一区二区av白丝在线| 欧美激情第8页| 国产精品久久久亚洲一区| 国产日韩亚洲欧美综合| 在线观看亚洲精品| 一本大道久久a久久精二百| 中日韩高清电影网| 欧美一级二区| 99热这里只有成人精品国产| 亚洲欧美日本另类| 久久精品日韩欧美| 欧美国产亚洲精品久久久8v| 国产精品福利片| 韩国一区二区三区美女美女秀| 亚洲精品1区| 亚洲午夜三级在线| 亚洲国产精品福利| 亚洲在线免费| 久久香蕉精品| 欧美日韩亚洲在线| 国产一区二区三区久久| 亚洲人精品午夜| 亚洲欧美日韩精品综合在线观看| 亚洲国产高清自拍| 亚洲一区二区在线看| 久久久久久久成人| 欧美日韩国产精品一卡| 国产一区二区剧情av在线| 亚洲日韩第九十九页| 午夜一区二区三区在线观看| 亚洲精品一区中文| 欧美一区二区三区的| 欧美成人午夜免费视在线看片| 国产精品国产三级国产aⅴ浪潮| 国语自产偷拍精品视频偷 | 亚洲国产成人porn| 亚洲毛片在线看| 亚洲天堂av在线免费观看| 久久精品盗摄| 欧美日韩亚洲在线| 亚洲电影在线| 午夜欧美理论片| 一卡二卡3卡四卡高清精品视频| 久久精品一区| 国产精品超碰97尤物18| 在线日韩av| 欧美一区二区免费| 亚洲欧美色婷婷| 欧美日韩18| 一区免费在线| 西西人体一区二区| 亚洲一区在线观看视频| 免费一级欧美在线大片| 国产热re99久久6国产精品| 在线亚洲欧美| 亚洲毛片av在线| 麻豆成人在线| 国产真实乱偷精品视频免| 亚洲在线一区二区| 亚洲一区二区视频在线| 欧美精品色综合| 黄网站免费久久| 欧美一区二区啪啪| 午夜伦理片一区| 国产精品99一区| 99爱精品视频| 中文在线不卡视频| 欧美激情一区三区| 亚洲黄页视频免费观看| 亚洲国产另类久久精品| 久久久水蜜桃| 国产一区二区三区四区| 亚洲综合色在线| 亚洲女爱视频在线| 国产精品www| 在线亚洲观看| 亚洲欧美精品在线观看| 欧美日韩在线不卡一区| 亚洲最新合集| 亚洲少妇最新在线视频| 欧美日韩无遮挡| 9色精品在线| 中文成人激情娱乐网| 欧美日韩国产精品自在自线| 亚洲精品久久久久久下一站 | 欧美日韩免费观看一区| 亚洲精品久久久一区二区三区| 亚洲精品一区二区三区蜜桃久 | 亚洲福利在线视频| 亚洲人午夜精品免费| 欧美福利电影网| 亚洲国产精品久久久久秋霞影院| 亚洲人屁股眼子交8| 欧美精品xxxxbbbb| 日韩视频一区二区在线观看 | 亚洲在线一区二区三区| 欧美综合国产精品久久丁香| 国产欧美日韩综合一区在线播放| 久久av二区| 国产欧美成人| 亚洲综合成人婷婷小说| 欧美在线一区二区| 国内精品一区二区| 亚洲人成亚洲人成在线观看| 欧美精品二区| 中文av字幕一区| 欧美在线3区| 狠狠色2019综合网| 亚洲日本国产| 欧美三级资源在线| 午夜久久久久久| 久久亚洲一区二区三区四区| 亚洲国产天堂久久综合| 亚洲手机成人高清视频| 国产精品综合av一区二区国产馆| 欧美一区1区三区3区公司| 老司机一区二区| 亚洲乱码国产乱码精品精可以看 | 午夜免费在线观看精品视频| 老司机精品视频网站| 91久久精品一区二区三区| 亚洲夜间福利| 国产日韩欧美日韩大片| 亚洲国产三级网| 国产精品vip| 久久国内精品视频| 欧美精品一区二区久久婷婷| 亚洲视频精选| 麻豆成人在线观看| 一区二区三区视频在线观看| 久久不射电影网| 亚洲国产精品久久久久婷婷884 | 欧美日韩免费精品| 性伦欧美刺激片在线观看| 欧美第十八页| 亚洲视频久久| 你懂的视频欧美| 午夜伦欧美伦电影理论片| 一区二区三区在线视频播放| 亚洲国产精品小视频| 国产精品wwwwww| 久久av老司机精品网站导航| 欧美日韩不卡视频| 久久成人资源| 欧美午夜一区二区| 91久久久久久久久久久久久| 国产精品久久二区二区| 亚洲国产高清aⅴ视频| 国产精品久久久久久久久借妻| 欧美一区二区三区在线播放| 欧美日韩国产在线| 欧美在线网站| 国产精品久久久久av免费| 亚洲欧洲一二三| 国产午夜精品视频免费不卡69堂| 一本久道综合久久精品| 黑人操亚洲美女惩罚| 亚洲一区在线免费观看| 91久久精品日日躁夜夜躁欧美 | 樱桃国产成人精品视频| 亚洲欧美在线一区二区| 欧美日韩国产首页|