Re: [問題X] Building a GNU/Linux ARM Toolchain …
※ 引述《FFz (澎湖.仙人掌.234)》之銘言:
: 我安裝好了,但是有一些疑問想請教各位
: 我是參照此教學的
: Building a GNU/Linux ARM Toolchain (from scratch)
: http://www.schnozzle.org/~coldwell/toolchain/
: 底下想請各位幫忙解惑的地方有很多
: 麻煩各位幫個忙,謝謝
: 最底下有我的系統相關資訊
: 問題開始,先謝過了
: -------------------------------------------------------
: 原著在安裝Glibc時下 --build=i386-redhat-linux
: 底下是我的安裝Glibc時設 --build=i686-linux
: ../../glibc-2.3.5/configure
: --prefix=${PREFIX}/${TARGET}
: --host=arm-elf
: --build=i686-linux
: --enable-shared
: --enable-add-ons=linuxthreads
: --with-headers=${SYSROOT}/usr/include 2>&1 | tee configure.out
: 可是我下 volname,得到
: Debian 3.1 r5 i386 Bin-1
: 那麼有差別嗎
: 還有,我電腦是用amd的,可是i686, i386是intel的架構
: 那有amd的參數值嗎?
這應該不是很大的問題,就我的經驗i386與i686差異不會很大。
: -------------------------------------------------------
: 請問,在安裝時gcc or glibc 都會填 --target, --host, --build, --prefix
部份有相關,例如在編gcc的時候要去找glibc的表頭檔,
這時候gcc的configure的--with-sysroot就不能設錯。
: 這兩者之間,的參數有相關嗎; glibc沒有 --target這個參數
^^^^^^^^^^^^^^^^^^
glibc原始碼裡的INSTALL說明書是這樣說的:
`--build=BUILD-SYSTEM'
`--host=HOST-SYSTEM'
These options are for cross-compiling. If you specify both
options and BUILD-SYSTEM is different from HOST-SYSTEM, `configure'
will prepare to cross-compile glibc from BUILD-SYSTEM to be used
on HOST-SYSTEM. You'll probably need the `--with-headers' option
too, and you may have to override CONFIGURE's selection of the
compiler and/or binutils.
: --prefix 這個參數是用來設定安裝的路徑嗎
^^^^^^^^^^
是的。不過詳細的路徑設定通常要看你解壓縮的原始碼裡的說明書。
: -------------------------------------------------------
: 關於,Building a GNU/Linux ARM Toolchain (from scratch)
: (http://www.schnozzle.org/~coldwell/toolchain/)
: 這篇教學,分成下列數個步聚
: 1.Setup
: 2.Get the sources
: 3.GNU binutils
: 4.Linux Kernel Headers
: 5.Glibc headers
: 6.Stage 1 GCC
: 7.GNU C Library
: 8.Stage 2 GCC
: 9.Linux Kernel Image
: 而這篇教學是建立一 cross-compiler toolchain for ARM
: 其中因為安裝glibc(step 7) 需要先有一 compiler
: 所要先安裝一 c compiler(step 6)
: 那麼,我問題一來了
: 為了安裝 glibc 而預先安裝的 c compiler
: 是 for arm的嗎?
: -------------------------------------------------------
: 問題二,我先假設,如果 c compiler不是 for arm的
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
這句話有點含糊。
你要表達的意思應該是這樣吧:
『如果 c compiler的target不是 for arm的』
(換句話說這個c compiler編出來的程式是不能在ARM上執行的。)
因為『如果 c compiler不是 for arm的』這句話的意思也可以是說:
有個c compiler不是在ARM上執行的
(換句話說這個c compiler不能在ARM上執行、編譯程式。)
的確有人把c compiler裝在ARM上執行,
不過我不清楚是怎麼辦到的。
: 那麼編譯出來的 glibc
: 當 Stage 2 GCC ( step 8 ) 的 gcc
: 在寫程式時要 include glibc 中的某函式庫
: 這樣到時編譯出來的程式會 for arm嗎
Stage 2 GCC在編譯cross gcc所用的編譯器是就是native gcc。
因為Stage 2 GCC是要編一個可以在你的x86電腦上run的cross compiler。
但這個cross compiler編出來的程式並不能直接在你電腦上run,
要丟到ARM機器上run,或者你可以用GDB/ARMulator模擬。
: -------------------------------------------------------
: 設定 $TARGET時
: TARGET = arm-elf
: 或
: TARGET = arm-linux 有差嗎?
這個資訊可以在gcc原始碼資料夾找到說明書,例如:
gcc-3.3.6/INSTALL/specific.html
: -------------------------------------------------------
: 怎麼確認compiler所編出來的程式
: 能夠在某個架構上執行呢,例如:ARM
用file這個指令後面接執行檔可以查到一些資訊,例如:
file a.out
a.out: ELF 32-bit LSB executable, ARM, version 1, statically linked, not
stripped
: -------------------------------------------------------
: 此教學中 "Building a GNU/Linux ARM Toolchain (from scratch)"
: 有一步聚是安裝 Stage 1 GCC
: 以及最後一步驟安裝 Stage 2 GCC
: 這兩個步驟是先安裝一gcc,在用此gcc來編譯另一個gcc
^^^^^^^^^^^^^^^^^^^^^^
是的。
: 那麼這樣,可以同一版本的gcc,來編同一版本的gcc嗎
^^^^^^^^^^^^^ ^^^^^^^^^^^^^
這句話不是很懂。
你前面與後面的gcc分別是指那一個gcc?
是stage 1,還是stage 2,還是native gcc?
: 或者是,兩者gcc都是不同版本嗎?
: 最後最後,己經快一天半沒睡了.....先來休息一下
加油,有空多讀一點文件,才不會試得這麼辛苦。
(雖然有些問題可能讀了文件也不見得能解決 XD)
: ====系統相關資訊====
: uname -nr
: debian 2.4.27-3-386
: volname
: Debian 3.1 r5 i386 Bin-1
: ====系統GCC相關資訊====
: dpkg -l gcc
: ii gcc 3.3.5-3 The GNU C compiler
: ====安裝程式相關資訊====
: binutils-2.16.tar.gz, linux-2.6.10.tar.gz,
: glibc-linuxthreads-2.3.5.tar.gz, glibc-2.3.5.tar.gz,
: gcc-3.4.4.tar.bz2, 2.6.10-at91.patch.gz,
: 26_at91_serial.c.gz, flow.c.diff,
: ioperm.c.diff, t-linux.diff,
--
Albert Einstein :
If there is any religion that could cope with modern scientific needs it
would be Buddhism.
《金剛經》一切有為法 如夢幻泡影 如露亦如電 應作如是觀
http://web.cc.ncu.edu.tw/~93501025/jg.doc
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.200.121
討論串 (同標題文章)
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章