GCC configure : --build
--host --target

從知道 Cross Compile
這個名詞以來,就看過這三個參數不知道幾次了,但除了剛開始時有想過這個問題之外,後來就沒仔細了解。這個問題是,這三個參數到底是有什麼差別?以自己的經驗,使用最多也只會的是
--host 這個參數(當要對某個程式做 cross compile
時用的),其他我還真的不了解怎麼用!今天總算對它們比較了解!

首先,根據不同的組合,它們有不同的名稱:

Native compiler: --build, --host, --target 都一樣
例:--build=x86 --host=x86 --target=x86

Cross compiler: --build 和 --host 一樣但 --target 不同
例:--build=SH --host=SH --target=ARM

Crossback compiler:
--build 和 --target 一樣但 --host 不同
例:--build=x86 --host=MIPS --target=x86

Crossed native
compiler
: --host 和 --target 一樣但 --build 不同
例:--build=PPC --host=SPARC --target=SPARC

Canadian compiler:
--build, --host, --target 都不一樣
例:--build=ARM --host=SH --target=MIPS


接著是它們的意義,我們要先知道 build, host 和 target 是什麼意思?
build 指的是你用來建構 GCC 的系統,
host 是要用來執行編譯器的系統,target 是你想讓編譯器產生程式碼的系統。

再來看看上面的例子:

--build=x86 --host=x86 --target=x86
表示在 x86上建構與執行,為 x86 產生執行檔

--build=SH --host=SH --target=ARM
表示在 SuperH 上建構與執行,為 ARM 產生執行檔

--build=x86 --host=MIPS --target=x86
表示在 x86系統上建構gcc compiler,在 MIPS上執行gcc compiler, 為 x86產生執行檔(Binary Program)

--build=PPC --host=SPARC --target=SPARC
表示在 PPC系統上建構gcc compiler,在SPARC上執行gcc compiler,為 SPARC 產生執行檔(Binary Program)

--build=ARM --host=SH --target=MIPS
表示在 ARM系統上建構gcc compiler,在SuperH上執行gcc compiler,為 MIPS 產生執行檔(Binary Program)

--
參考來源:GCC 完全指南(THE EXPERT'S VOICE IN OPEN SOURCE: The Definitive Guide to GCC)
arrow
arrow
    全站熱搜

    ryan0988 發表在 痞客邦 留言(0) 人氣()