[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.4.5 クロスコンパイラとヘッダファイル

単体のプログラムや組み込みシステム向けのプログラムをクロスコンパイル する場合は、GNU CC の一部(それに読者のプログラムの一部)であるものを 除いて、ヘッダファイルは何も必要ないだろう。 しかし、読者のプログラムを ‘libc.a’ のような標準 C ライブラリと リンクしたいのであれば、そのライブラリに付属するはずのヘッダファイルを 使ってコンパイルする必要があるだろう。

GNU C コンパイラにはこういうヘッダファイルは付いていない。 何故なら、(1) システムに依存するものであり、(2) C ライブラリに所属する ものであって、コンパイラに所属するものではないからである。

GNU C ライブラリが読者の対象機種をサポートしているなら、そこからヘッダファイル を入手できる(読者のプログラムをリンクするときに実際に GNU ライブラリを 使うことを想定した場合)。

読者の対象機種に C コンパイラが付いているなら、おそらく適切な ヘッダファイルも付いてくるはずである。このヘッダファイルを ホストマシンからアクセスできるようにすれば、クロスコンパイラからも 使える。

そうなっていない場合は、クロスコンパイルを行なうには読者自身が ヘッダファイルを用意しなければならない。

適当なヘッダファイルが見つかったなら、それをクロスコンパイラを 構築する前に、ディレクトリ ‘/usr/local/target/include’ に置く。 そうしておくと、インストールの際に fixincludes が正しく実行され、 ヘッダファイルの修正版を GNU CC が使用する場所にインストールされる。

ヘッダファイルはクロスコンパイラを構築する前に用意しなければならない。 構築の段階で、実際にクロスコンパイラを実行して ‘libgcc.a’ の一部を 生成するからである。(これらは、GNU CC でコンパイル可能な一部である。) この一部は適切なヘッダファイルを必要とする。

以下にヘッダファイルをターゲット機種からコピーする方法の例を示す。 ターゲット機種上でまず以下を実行する。

 
(cd /usr/include; tar cf - .) > tarfile

次にホストマシンで以下を実行する。

 
ftp target-machine
lcd /usr/local/target/include
get tarfile
quit
tar xf tarfile

This document was generated using texi2html 1.78.