国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
構(gòu)建嵌入式交叉編譯環(huán)境

http://www.cnblogs.com/jeffkuang/articles/3791205.html

2014

所謂交叉編譯環(huán)境,就是在普通的 PC 機(jī)編譯生成能在目標(biāo)機(jī)(如 ARM )上運(yùn)行的軟件。在 GNU 對(duì)工具鏈的定義中,整個(gè)交叉編譯工具鏈應(yīng)該是 GCC + binutils + glibc 。其中 GCC 又包括了預(yù)編譯器 cpp 、 C 編譯器 gcc 、匯編器 as 和鏈接器 ld 。

交叉編譯工具鏈的獲得方式:

( 1 )從網(wǎng)上下載已經(jīng)構(gòu)建好的交叉編譯工具鏈,比如 ARM 的交叉編譯工具鏈可以從ftp://ftp.arm.linux.org.uk/pub/linux/arm/toochain/ 下載。注意這些已經(jīng)做好了的交叉編譯工具鏈往往規(guī)定了安裝的路徑(因?yàn)樵诰幾g時(shí)就制定了路徑 --prefix ),可以查看一下 README 文檔,通常的路徑是“ /usr/local/arm/x.x.x ”,這時(shí)需要將工具包解壓到這個(gè)路徑下。

( 2 )使用 crosstool 自己構(gòu)建,下面以構(gòu)建 ARM 交叉編譯工具鏈為例,說(shuō)明構(gòu)建步驟

 

1.  下載 crosstool-0.43.tar.gz

【 crosstool-0.43.tar.gz 】 http://kegel.com/crosstool/crosstool-0.43.tar.gz

 

2.  配置 crosstool-0.43

[leo@ crosstool]$ tar zxvf crosstool-0.43.tar.gz

[leo@ crosstool]$ cd crosstool-0.43

[leo @ crosstool-0.43]$ vi demo-arm.sh

修改下面幾行,即設(shè)置 tarball 的路徑、編譯結(jié)果頂層路徑以及需要編譯的 gcc 版本。

TARBALLS_DIR=$HOME/Downloads

RESULT_TOP=$HOME/crosstool/arm

eval `cat arm.dat gcc-4.1.1-glibc-2.3.2.dat` sh all.sh --notest

 

[leo @ crosstool-0.43]$ vi gcc-4.0.0-glibc-2.3.2.dat

BINUTILS_DIR=binutils-2.16.1

GCC_DIR=gcc-4.0.0

GLIBC_DIR=glibc-2.3.2

LINUX_DIR=linux-2.6.15.4

LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0

GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2

GCC_CORE_DIR=gcc-3.3.6

  將以上所需的 tarball 放到 $(TARBALLS_DIR) 目錄下面。

 

[leo @ crosstool-0.43]$ vi arm.dat

KERNELCONFIG=`pwd`/arm.config

TARGET=arm-linux

TARGET_CFLAGS="-O"

 

[leo @ crosstool-0.43]$ ./demo-arm.sh

  系統(tǒng)開始編譯, 所有使用到的文件 ( 如果沒(méi)有預(yù)先存放在 $(TARBALLS_DIR) 目錄下面 ) ,則會(huì)在編譯的時(shí)候自動(dòng)下載。編譯的時(shí)間可能需要幾個(gè)小時(shí)。

 

【說(shuō)明】紅色部分為修改 / 增加部分

TARBALLS_DIR :是下載的工具源碼壓縮包的存放目錄。

RESULT_TOP  :是要生成的工具鏈的存放目錄,要有寫權(quán)限的目錄,不然無(wú)法編譯。

3. 所需工具源碼壓縮包的下載地址

【 binutils-2.16.1.tar.bz2 】 http://ftp.gnu.org/gnu/binutils/

【 gcc-4.0.0.tar.bz2 】 http://ftp.gnu.org/gnu/gcc/gcc-4.0.0/

【 glibc-2.3.2.tar.bz2 】 http://ftp.gnu.org/gnu/glibc/

【 linux-2.6.15.4.tar.bz2 】 http://ftp.kernel.org/pub/linux/kernel/v2.6/

【 glibc-linuxthreads-2.3.2.tar.bz2 】 http://ftp.gnu.org/gnu/glibc/

【 gcc-3.3.6.tar.bz2 】 http://ftp.gnu.org/gnu/gcc/gcc-3.3.6/

【 gdb-6.5.tar.bz2 】 http://ftp.gnu.org/gnu/gdb/

  以上就是編譯交叉編譯工具所用到的源文件組合,這個(gè)組合可以成功編譯,關(guān)于那些組合可以成功編譯可以參照http://kegel.com/crosstool/crosstool-0.43/buildlogs/ 表格。

 

4. 在 UBUNTU 下編譯出現(xiàn)的錯(cuò)誤

( 0 )需要安裝 bison 和 flex

sudo apt-get install bison flex

 

( 1 )編譯過(guò)程中出現(xiàn)一個(gè)問(wèn)題,說(shuō)是 gcc 版本太舊,其實(shí)是 gcc 版本太新了,解決如下:

先查看當(dāng)前 gcc 的版本 gcc –version ,比如我當(dāng)前的 gcc 版本 gcc-4.4

sudo apt-get install gcc-3.4

sudo rm /usr/bin/gcc

ln -s  /usr/bin/gcc-3.4  /usr/bin/gcc

注意編譯完成以后要恢復(fù)成原來(lái)的版本 , 如下:

sudo rm /usr/bin/gcc

ln -s  /usr/bin/gcc-4.3  /usr/bin/gcc

注意:在較新的 UBUNTU 中, sudo apt-get install gcc-3.4 會(huì)出現(xiàn) E: Couldn’t find package gcc-3.4 ,此時(shí)需要手動(dòng)到 http://packages.ubuntu.com/ 去下載較舊版本的安裝包,并自行處理包的依賴關(guān)系。

 

( 2 )出現(xiàn)如: build-glibc/csu/version-info.h:1:1:  missing terminating " character

系統(tǒng)在編譯生成 version.o 時(shí)候發(fā)現(xiàn) version-info.h 文件有錯(cuò)誤,解決如下:

解壓 glibc-2.3.2.tar.bz2

找到 glibc-2.3.2/csu 目錄下的 Makefile 按如下修改:

文件末尾有 2 處 echo

echo "\"Compiled on a $$os $$version system" \

      "on`date +%Y-%m-%d`.\\n\"" ;; \

改為:

echo "\"Compiled on a $$os $$version system" \

      "on `date +%Y-%m-%d`.\\\\n\"" ;; \

 

echo "\"Available extensions:\\n\""; \

改為:

echo "\"Available extensions: \\\\n\""    \

保存并重新壓縮為 glibc-2.3.2.tar.bz2 覆蓋原來(lái) $(TARBALLS_DIR) 目錄下的 glibc-2.3.2.tar.bz2 ,轉(zhuǎn)到 crosstool-0.43 目錄下從新執(zhí)行。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
內(nèi)核編譯之二:交叉編譯工具
ubuntu10.04下建立交叉編譯工具鏈(支持軟浮點(diǎn))全過(guò)程
JZ2440移植Qte4.4.3
我的白金時(shí)代: cygwin下交叉編譯環(huán)境搭建完成
Cross Toolchain-交叉編譯工具鏈
ARM-Linux 交叉編譯工具鏈制作(基于crosstool-0.43)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服