• 締切済み

GCCコンパイラ作成時にmemory.hも作成する方法

GCCコンパイラ作成時にmemory.hも作成する方法 TOPPERS/JSPのコンフィグレーションツールを ビルドしたく、ビルド実績のあると耳にした GCC3.4.4をCygwin上に作成しました。 GCC3.4.4は以下の3つから作成しました。 ・binutils-2.16.tar.bz2 ・gcc-3.4.4.tar.bz2 ・newlib-1.14.0.tar.gz GCC3.4.4の作成手順は、Web上に掲載されている手順を 参考にして、以下の通り実施しました。 ■binutilsのインストール $ tar zxvf ./binutils-2.16.tar.gz $ cd binutils-2.16 $ ./configure --target=i686-elf --prefix=/cygdrive/c/cygwin/usr/local/gnu $ make $ make install ■gccのインストール $ tar xvjf ./gcc-3.4.4.tar.bz2 $ tar zxvf ./newlib-1.14.0.tar.gz $ export PATH=$PATH:cygdrive/c/cygwin/usr/local/gnu/bin/ $ cd gcc-3.4.4 $ ./configure --target=i686-elf --prefix=/cygdrive/c/cygwin/usr/local/gnu --with-newlib --with-headers=/cygdrive/c/cgywin/usr/local/src/gnu/newlib-1.14.0/newlib/libc/include/ --disable-bootstrap --enable-languages="c,c++" $ make $ make install しかしながら上記の手順で作成すると、コンパイラ作成時に memory.hが作成されません。 そのため、コンフィグレーションツールのビルドが成功しません。 そこで、教えていただきたいのですが、 そもそもGCC3.4.4のコンパイラを作成する際にmemory.hも一緒に作成し、 GCC3.4.4のg++がインクルードする設定にできるのでしょうか? できる場合は、作成に必要な手順を是非とも教えてください。

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

気になるのが --target=i686-elf targetはあってますね? これでできあがったファイルはCygwin上では動作しないのではないか、と思いますが。 --prefix=/cygdrive/c/cygwin/usr/local/gnu Cygwinを C:\cygwin にインストールしたなら、 そこがCygwinにとってのルートディレクトリになるので --prefix=/usr/local/gnu で十分です。 (後でディスクを移動した場合でも変更がすくなくて済む) $ export PATH=$PATH:cygdrive/c/cygwin/usr/local/gnu/bin/ →$ export PATH=$PATH:/usr/local/gnu/bin/ cygdrive/c/cygwin/usr/local/gnu/bin/では相対パスです。 --with-headers=/cygdrive/c/cgywin/usr/local/src/gnu/newlib-1.14.0/newlib/libc/include/ →--with-headers=/usr/local/src/gnu/newlib-1.14.0/newlib/libc/include/ memory.hが見つからなかったのって、 /cygdrive/c/cgywin の間違いに気づかなかった、ということではないでしょうか

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.1

わざわざ、ソースからビルドしなくても、 gcc-3.4.4(cygwin版)なら、バイナリが配布されているんじゃ?

関連するQ&A