《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 建立針對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福利| 久久电影一区| 亚洲欧美第一页| 日韩午夜电影av| 亚洲国产天堂久久综合| 国模精品一区二区三区色天香 | 麻豆国产精品777777在线| 欧美一区免费| 久久成人免费电影| 久久精品99久久香蕉国产色戒| 欧美一区二区三区四区高清| 亚洲欧美中文另类| 亚洲欧美日韩成人| 午夜在线电影亚洲一区| 性做久久久久久| 性欧美1819sex性高清| 国产毛片一区| 亚洲欧美一区二区精品久久久| 在线一区二区三区四区五区| 一本色道久久综合亚洲精品婷婷 | 老司机午夜精品视频| 久久久久久久久久久一区| 久久国产夜色精品鲁鲁99| 久久www免费人成看片高清| 性做久久久久久| 久久久精品999| 麻豆成人综合网| 欧美精品v国产精品v日韩精品| 欧美高清在线| 欧美三级不卡| 国产精品美女久久福利网站| 国产精品嫩草影院一区二区| 国产精品爽黄69| 国产一区二区按摩在线观看| 极品日韩久久| 在线观看欧美日本| 国产精品欧美久久久久无广告| 亚洲人成人一区二区在线观看| 国产一区二区精品丝袜| 国产综合亚洲精品一区二| 红桃av永久久久| 亚洲成人在线视频播放| 最新日韩av| 一本大道久久a久久精二百| 中日韩男男gay无套| 亚洲嫩草精品久久| 欧美自拍偷拍午夜视频| 亚洲国产天堂久久综合| 一本色道久久88精品综合| 先锋影音国产精品| 久久综合五月天婷婷伊人| 欧美片第1页综合| 国产精品久久久久久久久婷婷 | 欧美电影免费观看网站| 欧美天堂亚洲电影院在线播放 | 欧美破处大片在线视频| 欧美日韩亚洲激情| 国产精品自在线| 亚洲第一黄色网| 一本色道久久综合亚洲精品小说| 西瓜成人精品人成网站| 亚洲人成7777| 午夜精品理论片| 男女激情视频一区| 国产精品美女久久久久久免费| 国产中文一区二区三区| 亚洲人妖在线| 午夜日韩在线观看| 亚洲免费观看高清完整版在线观看熊 | 亚洲一区二区三区激情| 久久久久久有精品国产| 欧美精品久久久久久久久老牛影院 | 亚洲国产成人久久| 亚洲淫片在线视频| 蜜臀久久99精品久久久久久9 | 欧美日韩综合久久| 国产一区日韩二区欧美三区| 亚洲精品自在久久| 欧美在线一二三四区| 一区二区三区回区在观看免费视频| 久久精品国产2020观看福利| 欧美日韩亚洲一区二区三区在线 | 亚洲日本一区二区三区| 香蕉尹人综合在线观看| 一本色道久久综合亚洲精品婷婷| 久久激情五月丁香伊人| 欧美日韩三区| 亚洲电影av| 欧美在线视屏| 亚洲综合清纯丝袜自拍| 欧美国产综合| 伊人久久大香线蕉综合热线| 最近中文字幕mv在线一区二区三区四区 | 你懂的国产精品| 国产日韩欧美在线看| 野花国产精品入口| 亚洲免费观看| 可以免费看不卡的av网站| 国产精品丝袜白浆摸在线| 亚洲精品视频在线播放| 亚洲国产你懂的| 久久九九精品| 国产女主播一区| 亚洲一区二区三区高清| 一区二区精品在线观看| 欧美福利小视频| 极品尤物av久久免费看| 欧美日韩一区二区三区在线看| 狠狠干狠狠久久| 中文日韩在线视频| 99视频精品在线| 欧美**人妖| 激情视频一区| 久久精品国产一区二区三区免费看| 午夜精品久久久久久久| 欧美日韩精品在线视频| 91久久精品美女| 亚洲精品美女在线观看| 免费在线看成人av| 一区免费在线| 亚洲国产精品视频一区| 久久综合狠狠综合久久综合88| 国产人成精品一区二区三| 亚洲一区二区三区涩| 午夜精品美女久久久久av福利| 欧美视频成人| 久久久国产精品一区| 亚洲欧美日韩中文播放| 亚洲视频网在线直播| 欧美日韩福利视频| 亚洲麻豆国产自偷在线| 中文亚洲视频在线| 欧美色视频一区| 亚洲一区二区三区四区视频| 午夜激情一区| 国产区精品视频| 久久国产婷婷国产香蕉| 免费的成人av| 亚洲欧洲一二三| av成人老司机| 国产精品久久国产精品99gif| 亚洲综合电影| 久久久久综合网| 在线日韩av永久免费观看| 亚洲精品一区二区三区99| 欧美久久精品午夜青青大伊人| 亚洲伦伦在线| 亚洲欧美欧美一区二区三区| 国产人妖伪娘一区91| 欧美一区二区视频在线观看2020 | 在线观看一区视频| 日韩视频在线观看| 欧美精品在线播放| 亚洲少妇一区| 亚洲欧美电影院| 国产区在线观看成人精品| 久久精品国产999大香线蕉| 免费不卡在线视频| 亚洲精品少妇| 久久av一区二区| 有码中文亚洲精品| 一区二区三区高清| 国产伦精品一区二区三区| 亚洲国产成人porn| 欧美日韩成人综合| 亚洲综合色丁香婷婷六月图片| 久久人人97超碰国产公开结果| 91久久久久久久久久久久久| 亚洲欧美日韩在线综合| 狠狠做深爱婷婷久久综合一区| 99精品国产在热久久| 国产欧美韩国高清| 日韩亚洲欧美一区二区三区| 国产精品你懂得| 亚洲国产日韩一区二区| 国产精品久久国产三级国电话系列| 久久9热精品视频| 欧美人妖另类| 亚洲综合社区| 欧美精品一区在线播放| 亚洲欧美视频一区二区三区| 欧美a级片网| 亚洲一区日韩| 欧美高清在线一区二区| 亚洲欧美日韩国产成人| 欧美精品免费播放| 欧美伊人久久大香线蕉综合69| 欧美精品激情在线观看| 欧美在线一区二区| 国产主播精品在线| 亚洲欧美日本另类| 欧美日本不卡| 亚洲高清视频在线观看| 国产精品视频午夜| 99精品久久免费看蜜臀剧情介绍| 国产一区二区三区在线观看免费视频| 一本一道久久综合狠狠老精东影业| 国产一区二区av| 小处雏高清一区二区三区 | 久久―日本道色综合久久|