プログラミング(programming)/cross-compiler
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
] [
Japanese
/
English
]
研究について
研究の概要
論文発表
メディア
メンバー
教員
大学院生
学部生
OB
リンク
リンク集
授業
コンピュータプログラミング基礎II
機械知能システム工学特別講義I
機械システム工学特論(MORE SENSE特論)
内部用
物品管理(registries)
外部ソフトウェア
PC環境設定
買い物
プリンタ設定
定例研究会(weekly)
研究発表会(monthly)
閲覧回数順
開始行:
[[プログラミング(programming)]]~
[[プログラミング(programming)/H8]]~
+ はじめに~
これは、組み込みプロセッサ向けのCコンパイラの作成に関する...
[http://www.gnu.org/ GNU]のツールを利用する。~
gcc, binutils, newlib(またはglibc) を利用。
ビルド環境はgccが動く環境。([http://sources.redhat.com/cy...
+ 手順~
++ gcc,binutils,newlib(glibc)のソースをダウンロード。
++ binutilsを作り、インストール。
++ gcc を作り、インストール。
++ newlib(glibc) を作り、インストール。
++ 使う。 ~
※それぞれの役割は、[[用語集>#yougoshu]]を参照。
+ 各ソースのダウンロード~
[ftp://ftp.gnu.org/gnu/ GNUのFTPサイト](またはそのミラー...
++ gcc~
[ftp://ftp.gnu.org/gnu/gcc/ gnu]
[ftp://ftp.ring.gr.jp/pub/GNU/gcc ring]
++ binutils~
[ftp://ftp.gnu.org/gnu/binutils/ gnu]
[ftp://ftp.ring.gr.jp/pub/GNU/binutils/ ring]
++ newlib または、glibc~
glibcはGNUのもので、
[ftp://ftp.gnu.org/gnu/glibc/ gnu]
[ftp://ftp.ring.gr.jp/pub/GNU//glibc/ ring]
から。~
newlibはRedHatのもので、
[ftp://sources.redhat.com/pub/newlib/index.html redhat]
から。~
glibcではコンパイルが通らないTARGET([[※>#yougoshu]])でも...
+ ダウンロードしたソースの展開~
プロンプトを 'カレントディレクトリ名% ' とすると、
/usr/local/src% ls
gcc-2.95.3.tar.gz binutils-2.12.1.tar.bz2
newlib-1.10.0.tar.gz
/usr/local/src% bzcat binutils-2.12.1.tar.bz2 | tar xvf -
...
/usr/local/src% zcat gcc-2.95.3.tar.gz | tar xvf -
...
/usr/local/src% zcat newlib-1.10.0.tar.gz | tar xvf -
...
/usr/local/src% ls -F
gcc-2.95.3.tar.gz binutils-2.12.1.tar.bz2
newlib-1.10.0.tar.gz gcc-2.95.3/
binutils-2.12.1/ newlib-1.10.0/
のようにして、各ソースを展開する。~
詳しくは、tar --help や、zcat --help などを参照。
+ configure~
configureというのは、これからmakeを行おうとしているマシン...
configure --help とすると、オプションが表示される。
++ ビルド(make)を行うディレクトリを作成する。
/usr/local/src% cd gcc-2.95.3/
/usr/local/src/gcc-2.95.3% mkdir build-h8
/usr/local/src/gcc-2.95.3% cd build-h8
/usr/local/src/gcc-2.95.3/build-h8%
++ configureスクリプトを実行する。
/usr/local/src/gcc-2.95.3/build-h8% ../configure --help
... (オプションが表示される)
/usr/local/src/gcc-2.95.3/build-h8% ../configure --targe...
...
【説明】~
--- --prefix~
インストール先のベースディレクトリ名を指定する。~
/usr/localがデフォルトなので、 上のように指定しなくてもよ...
--prefix=/hoge とすれば、~
make install~
により、/hoge/bin/ や、 /hoge/lib/、/hoge/include/、/hoge...
--- --program-prefix(--program-suffix)~
出来上がった実行ファイル名の 先頭(末尾)に追加する文字列を...
上のように指定すると、h8-gccやh8-ld, h8-as等ができる。 ~
デフォルトは"${target}-"である。 h8300-hms-coff-gcc, h830...
--- tee~
出力をファイルと画面の両方に出力する。~
1>&2 | tee file により、標準出力とエラー出力をteeに渡し、...
" 2>&1 | " はbashやsh(Bourne shell)用。csh系の場合は、" 2...
+ make~
前項のconfigureスクリプトにより作成されたMakefileにより、...
/usr/local/src/gcc-2.95.3/build-h8% make 2>&1 | tee make...
...
--- エラーで止まった場合は、問題箇所を修正して再びmakeす...
make CFLAGS+="-I/usr/include" ~
とするとうまく行く場合もあるし、
エラーを起こしたディレクトリに行って、~
./configure --target=h8300-hms-coff ~
make ~
とすればうまくいく場合もあるし、
もっと色々と修正が必要な場合もある。~
ターゲット名とgcc等をキーワードに検索すれば、パッチ([[※>#...
binutils,gcc,newlib(glibc)の各バージョンの組み合わせと TA...
うまくいく組み合わせといかない組み合わせがあったりする。
+ binutilsのmakeとインストール~
まずbinutilsをmakeし、 PATHの通ったところにインストールし...
なぜなら、gccやglibc(newlib)のコンパイルの際に、 binutils...
/usr/local/src/binutils-2.12.1% mkdir build-h8
/usr/local/src/binutils-2.12.1% cd build-h8
/usr/local/src/binutils-2.12.1/build-h8% ../configure --...
...
/usr/local/src/binutils-2.12.1/build-h8% make 2>&1 | tee...
...
/usr/local/src/binutils-2.12.1/build-h8% make install 2>...
...
+ gccのmakeとインストール~
前項でmake installされたbinutilsを利用する。 --program-pr...
/usr/local/src/gcc-2.95.3% mkdir build-h8
/usr/local/src/gcc-2.95.3% cd build-h8
/usr/local/src/gcc-2.95.3/build-h8% ../configure --targe...
...
/usr/local/src/gcc-2.95.3/build-h8% make LANGUAGES="c c+...
...
/usr/local/src/gcc-2.95.3/build-h8% make LANGUAGES="c c+...
...
--- --nfp は、浮動小数点演算器を持たないTARGET。
--with-newlib は、あとで、glibcでなくnewlibを使う。~
--- コンパイルが通らないときは、~
make -k LANGUAGES="c c++" all-gcc~
make -k LANGUAGES="c c++" install-gcc~
などを試すと通ることもある。
+ newlibのmakeとインストール~
/usr/local/src/newlib-1.10.0% mkdir build-h8
/usr/local/src/newlib-1.10.0% cd build-h8
/usr/local/src/newlib-1.10.0/build-h8% ../configure --ta...
...
/usr/local/src/newlib-1.10.0/build-h8% make all-target-n...
...
/usr/local/src/newlib-1.10.0/build-h8% make install-targ...
...
----
&aname(yougoshu);
* ※用語集 [#l1225ef4]
:gcc|GNU C Compiler。コンパイラ本体。Cのコンパイラ((GCCは...
:binutils|GNU binary utilities。アセンブラ(as)やリンカ(ld...
:newlib または、glibc|libc,libmなど(Cの標準ライブラリ。標...
:TARGET ターゲット|コンパイルされたプログラムが走るCPUと...
<アーキテクチャ名>-<OSなど>-<バイナリフォーマット> ...
例)
--- target=h8300-coff → CPU: Hitach H8/300、coffフォーマ...
--- target=h8300-elf → CPU: Hitach H8/300、elfフォーマット
--- target=m68k-coff → CPU:Motorola68000、coffフォーマット
--- target=m68k-elf → CPU:Motorola68000、elfフォーマット
--- target=m68k-linux-elf → CPU:Motorola68000、Linux、elf...
--- etc...
:BUILD ビルド|gccやbinutilsなどをコンパイル(ビルド)する...
:HOST ホスト|ビルドされたクロスのgccなどが実行される環境。
:クロスコンパイラ クロスのgcc|コンパイラが走るマシンと、 ...
:パッチ|patchコマンドにより、ソースコードに変更を加えるも...
終了行:
[[プログラミング(programming)]]~
[[プログラミング(programming)/H8]]~
+ はじめに~
これは、組み込みプロセッサ向けのCコンパイラの作成に関する...
[http://www.gnu.org/ GNU]のツールを利用する。~
gcc, binutils, newlib(またはglibc) を利用。
ビルド環境はgccが動く環境。([http://sources.redhat.com/cy...
+ 手順~
++ gcc,binutils,newlib(glibc)のソースをダウンロード。
++ binutilsを作り、インストール。
++ gcc を作り、インストール。
++ newlib(glibc) を作り、インストール。
++ 使う。 ~
※それぞれの役割は、[[用語集>#yougoshu]]を参照。
+ 各ソースのダウンロード~
[ftp://ftp.gnu.org/gnu/ GNUのFTPサイト](またはそのミラー...
++ gcc~
[ftp://ftp.gnu.org/gnu/gcc/ gnu]
[ftp://ftp.ring.gr.jp/pub/GNU/gcc ring]
++ binutils~
[ftp://ftp.gnu.org/gnu/binutils/ gnu]
[ftp://ftp.ring.gr.jp/pub/GNU/binutils/ ring]
++ newlib または、glibc~
glibcはGNUのもので、
[ftp://ftp.gnu.org/gnu/glibc/ gnu]
[ftp://ftp.ring.gr.jp/pub/GNU//glibc/ ring]
から。~
newlibはRedHatのもので、
[ftp://sources.redhat.com/pub/newlib/index.html redhat]
から。~
glibcではコンパイルが通らないTARGET([[※>#yougoshu]])でも...
+ ダウンロードしたソースの展開~
プロンプトを 'カレントディレクトリ名% ' とすると、
/usr/local/src% ls
gcc-2.95.3.tar.gz binutils-2.12.1.tar.bz2
newlib-1.10.0.tar.gz
/usr/local/src% bzcat binutils-2.12.1.tar.bz2 | tar xvf -
...
/usr/local/src% zcat gcc-2.95.3.tar.gz | tar xvf -
...
/usr/local/src% zcat newlib-1.10.0.tar.gz | tar xvf -
...
/usr/local/src% ls -F
gcc-2.95.3.tar.gz binutils-2.12.1.tar.bz2
newlib-1.10.0.tar.gz gcc-2.95.3/
binutils-2.12.1/ newlib-1.10.0/
のようにして、各ソースを展開する。~
詳しくは、tar --help や、zcat --help などを参照。
+ configure~
configureというのは、これからmakeを行おうとしているマシン...
configure --help とすると、オプションが表示される。
++ ビルド(make)を行うディレクトリを作成する。
/usr/local/src% cd gcc-2.95.3/
/usr/local/src/gcc-2.95.3% mkdir build-h8
/usr/local/src/gcc-2.95.3% cd build-h8
/usr/local/src/gcc-2.95.3/build-h8%
++ configureスクリプトを実行する。
/usr/local/src/gcc-2.95.3/build-h8% ../configure --help
... (オプションが表示される)
/usr/local/src/gcc-2.95.3/build-h8% ../configure --targe...
...
【説明】~
--- --prefix~
インストール先のベースディレクトリ名を指定する。~
/usr/localがデフォルトなので、 上のように指定しなくてもよ...
--prefix=/hoge とすれば、~
make install~
により、/hoge/bin/ や、 /hoge/lib/、/hoge/include/、/hoge...
--- --program-prefix(--program-suffix)~
出来上がった実行ファイル名の 先頭(末尾)に追加する文字列を...
上のように指定すると、h8-gccやh8-ld, h8-as等ができる。 ~
デフォルトは"${target}-"である。 h8300-hms-coff-gcc, h830...
--- tee~
出力をファイルと画面の両方に出力する。~
1>&2 | tee file により、標準出力とエラー出力をteeに渡し、...
" 2>&1 | " はbashやsh(Bourne shell)用。csh系の場合は、" 2...
+ make~
前項のconfigureスクリプトにより作成されたMakefileにより、...
/usr/local/src/gcc-2.95.3/build-h8% make 2>&1 | tee make...
...
--- エラーで止まった場合は、問題箇所を修正して再びmakeす...
make CFLAGS+="-I/usr/include" ~
とするとうまく行く場合もあるし、
エラーを起こしたディレクトリに行って、~
./configure --target=h8300-hms-coff ~
make ~
とすればうまくいく場合もあるし、
もっと色々と修正が必要な場合もある。~
ターゲット名とgcc等をキーワードに検索すれば、パッチ([[※>#...
binutils,gcc,newlib(glibc)の各バージョンの組み合わせと TA...
うまくいく組み合わせといかない組み合わせがあったりする。
+ binutilsのmakeとインストール~
まずbinutilsをmakeし、 PATHの通ったところにインストールし...
なぜなら、gccやglibc(newlib)のコンパイルの際に、 binutils...
/usr/local/src/binutils-2.12.1% mkdir build-h8
/usr/local/src/binutils-2.12.1% cd build-h8
/usr/local/src/binutils-2.12.1/build-h8% ../configure --...
...
/usr/local/src/binutils-2.12.1/build-h8% make 2>&1 | tee...
...
/usr/local/src/binutils-2.12.1/build-h8% make install 2>...
...
+ gccのmakeとインストール~
前項でmake installされたbinutilsを利用する。 --program-pr...
/usr/local/src/gcc-2.95.3% mkdir build-h8
/usr/local/src/gcc-2.95.3% cd build-h8
/usr/local/src/gcc-2.95.3/build-h8% ../configure --targe...
...
/usr/local/src/gcc-2.95.3/build-h8% make LANGUAGES="c c+...
...
/usr/local/src/gcc-2.95.3/build-h8% make LANGUAGES="c c+...
...
--- --nfp は、浮動小数点演算器を持たないTARGET。
--with-newlib は、あとで、glibcでなくnewlibを使う。~
--- コンパイルが通らないときは、~
make -k LANGUAGES="c c++" all-gcc~
make -k LANGUAGES="c c++" install-gcc~
などを試すと通ることもある。
+ newlibのmakeとインストール~
/usr/local/src/newlib-1.10.0% mkdir build-h8
/usr/local/src/newlib-1.10.0% cd build-h8
/usr/local/src/newlib-1.10.0/build-h8% ../configure --ta...
...
/usr/local/src/newlib-1.10.0/build-h8% make all-target-n...
...
/usr/local/src/newlib-1.10.0/build-h8% make install-targ...
...
----
&aname(yougoshu);
* ※用語集 [#l1225ef4]
:gcc|GNU C Compiler。コンパイラ本体。Cのコンパイラ((GCCは...
:binutils|GNU binary utilities。アセンブラ(as)やリンカ(ld...
:newlib または、glibc|libc,libmなど(Cの標準ライブラリ。標...
:TARGET ターゲット|コンパイルされたプログラムが走るCPUと...
<アーキテクチャ名>-<OSなど>-<バイナリフォーマット> ...
例)
--- target=h8300-coff → CPU: Hitach H8/300、coffフォーマ...
--- target=h8300-elf → CPU: Hitach H8/300、elfフォーマット
--- target=m68k-coff → CPU:Motorola68000、coffフォーマット
--- target=m68k-elf → CPU:Motorola68000、elfフォーマット
--- target=m68k-linux-elf → CPU:Motorola68000、Linux、elf...
--- etc...
:BUILD ビルド|gccやbinutilsなどをコンパイル(ビルド)する...
:HOST ホスト|ビルドされたクロスのgccなどが実行される環境。
:クロスコンパイラ クロスのgcc|コンパイラが走るマシンと、 ...
:パッチ|patchコマンドにより、ソースコードに変更を加えるも...
ページ名: