用Crosstool工具構建交叉工具鏈–2

來源:互聯網
上載者:User

開啟crosstool-0.43目錄下的arm9.dat檔案,內容如下:

KERNELCONFIG=`pwd`/arm.config

TARGET=arm-unknown-linux-gnu

TARGET_CFLAGS="-O"這個檔案一般用於設定一些變數,一般不用改,用預設即可!不過倒是可以將arm-unknown-linux-gnu改成arm-linux,到時候敲命令的時候也短些,所以我改了呵呵!

開啟crosstool-0.43目錄下的gcc-4.1.0-glibc-2.3.2-tls.dat檔案(相信你也看到了,對應你上面選的),內容如下:

BINUTILS_DIR=binutils-2.16.1

GCC_CORE_DIR=gcc-3.3.6

GCC_DIR=gcc-4.1.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

GDB_DIR=gdb-6.5

GLIBC_EXTRA_CONFIG="$GLIBC_EXTRA_CONFIG --with-tls --with-__thread   --enable-kernel=2.4.18"

然後到網上去下載上面紅色標記的幾個源碼包,一般是下*.tar.bz2檔案,(好像crosstool自己可以到網上搜尋程式碼封裝,不過我用的迅雷下快些)。不過我在第一次編譯的時候卻出錯了,提示找不到glibc-linuxthreads-2.3.2.tar.gz檔案,還好下了glibc-linuxthreads-2.3.2.tar.gz以後就成功了。下載後存放在/root/downloads目錄下,再在/home/downloads下也放一份(不在/home/downloads目錄下面放不知道能不能成功,管他的,鳥事一個,乾脆就在這裡也放嘛)注意,不需要解壓!!NOW,IT'S OK!

3、進入crosstool-0.43目錄,輸入./demo-arm.sh,照著網上兄弟說的,似乎也應該就成功了。可是卻出現了下面的提示:(僅部分)

+ abort 'Don'/''t run all.sh or crosstool.sh as root, it'/''s dangerous'

+ echo 'Don'/''t' run all.sh or crosstool.sh as root, 'it'/''s' dangerous

Don't run all.sh or crosstool.sh as root, it's dangerous

看到了吧,人家不讓在root使用者下允許,說的是 “ it's dangerous”,鬱悶~~~!趕緊建立個賬戶,我建的 tyl ,在終端裡面切換到 tyl :su - tyl , 然後運行。本來以為又要成功了的,結果又傻眼了,提示說的是在 tyl 下面沒有寫的許可權!!NND!!!在網上找怎麼樣讓在 tyl 使用者下有寫的權 限,忙乎了很久,卻沒有一點頭緒。似乎卡死在這了。。。又在網上瞎搜尋了下,終於找到答案,再切換回root使用者!!直接在終端輸入 su ,按提示輸入密碼,編譯,一切OK。然後經過N(N>=4)小時的編譯,就可以在你的/opt/crosstool目錄中看到你想要的工具鏈,標頭檔,庫檔案等東東了!你可以把工具鏈所在目錄加到環境變數PATH中: 終端中輸入export PATH=/opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-linux/bin:$PATH

vi /etcbashrc,現在就可以用了。編一個最簡單的 hello.c,輸入 arm-linux-gcc -o hello hello.c,然後 file hello,看到

hello: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.4.18, dynamically linked (uses shared libs), for GNU/Linux 2.4.18, not stripped

說明成功了。但是現在還沒有完全成功,如果你再開啟一個終端,會提示你找不到 arm-linux-gcc 命令,還需要在 /etc/bashrc 的最後一行下面添加上 export PATH=/opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-linux/bin:$PATH

然後就OK

注意:crosstool -0.43目錄下的PATCH目錄中有各個工具鏈的補丁,如果在編譯過程中有錯誤,可以在crosstool-0.43目錄下build目錄中的解壓後的源檔案中打上補丁(我沒打補丁也編譯成功了,呵呵)。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.