1. ホーム
  2. ubuntu

[解決済み] エラー "gnu/stubs-32.h: Nachosのソースコードをコンパイルする際に "No such file or directory "というエラーが発生した。

2022-04-21 11:05:43

質問

ノートパソコンにNachosをインストールしようとしていますが、ノートパソコンにはUbuntu 11.04が入っています。

コードはC言語なので、ビルドするにはクロスコンパイラが必要だと思います。ここで、私の問題が発生しました。私は、MIPSクロスコンパイラのソースコードをコマンドを使用してダウンロードしました。

  wget http://mll.csie.ntu.edu.tw/course/os_f08/assignment/mips-decstation.linux-xgcc.gz

で解凍し

tar zxvf mips-decstation.linux-xgcc.gz      

これはいいのですが、nachos osのソースコードを、makeを使ってビルドしようとすると、こんなエラーが出ます -。

/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory compilation terminated. make: *** [bitmap.o] Error 1

私はここで与えられた指示に従おうとしています。 http://mll.csie.ntu.edu.tw/course/os_f08/217.htm で、makeを使おうとしたとき以外はすべてうまくいっています。

どうすればいいですか?

32 ビット版の libc dev パッケージが不足しています。

について Ubuntu libc6-dev-i386 という名前です。 sudo apt-get install libc6-dev-i386 . Ubuntu 12.04での追加手順は以下を参照してください。

について レッドハット ディストリビューションでは、パッケージ名は glibc-devel.i686 (David Gardner氏のコメントに感謝します)。

について CentOS 5.8 の場合、パッケージ名は glibc-devel.i386 (JimKleckさんのコメントに感謝します)。

について CentOS 6 / 7 の場合、パッケージ名は glibc-devel.i686 .

オン SLES glibc-devel-32bit という名前です。 zypper in glibc-devel-32bit .

オン Gentoo という名前です。 sys-libs/glibc - する emerge -1a sys-libs/gcc [ ソース を使用することができます。 equery であることを確認します。 equery belongs belongs /usr/include/gnu/stubs-32.h )

オン ArchLinux の場合、パッケージ名は lib32-glibc - する pacman -S lib32-glibc .


を使用していますか? Ubuntu 12.04 ? があります。 ファイルが標準的でない場所に置かれる既知の問題 . あなたは また をする必要があります。

export LIBRARY_PATH=/usr/lib/$(gcc -print-multiarch)
export C_INCLUDE_PATH=/usr/include/$(gcc -print-multiarch)
export CPLUS_INCLUDE_PATH=/usr/include/$(gcc -print-multiarch)

をビルドする前のどこか(例えば.bashrcの中)に置いてください。


C++のコードもコンパイルする場合は、32bitのstdc++ライブラリも必要です。この警告が表示された場合

.... /usr/bin/ld: -lstdc++ が見つかりません ....

について Ubuntu を実行する必要があります。 sudo apt-get install g++-multilib

オン CentOS 5 を実行する必要があります。 yum install libstdc++-devel.i386

オン CentOS 6 を実行する必要があります。 yum install libstdc++-devel.i686

他のシステム用のパッケージで自由に編集してください。