64ビットマシンで32ビットバイナリをコンパイルする際の問題


13

私は64ビットではなく32ビットのバイナリとしてacプログラムをコンパイルしようとしています。追加することから始めて、-m32いくつかのエラーが発生しました。少しぐるぐる回って、ia32-libsをインストールするためのメモに出くわしました。実行するapt-get install ia32-libsと、インストール済みで最新バージョンの通知が表示されました。

失敗するまで、次のライブラリを含むライブラリのチェーンがあります。

/usr/include/features.h:323:26: fatal error: bits/predefs.h: No such file or directory

他のインクルードの32ビットバージョンが含まれているようです /usr/include/c++/4.6/x86_64-linux-gnu/32/bits/ ...

何が欠けていますか?

回答:


39

Lekensteynの答えは、(64ビットoneiricで)私にとって多くの既存のパッケージと競合しました。

代わりに私はこれを行い、libc6-dev-i386パッケージを引き込みました:

apt-get install gcc-multilib

7

ia32-libsMulti Archにまだ移行されていないいくつかの互換性ライブラリが含まれているだけです。32ビットライブラリをコンパイルするには、32ビットライブラリとC用開発ファイルをインストールする必要があります。

sudo apt-get install libc6-dev:i386

参照:11.10のmultiarch機能は、力の死を意味しますか?アーキテクチャーのインストール?


インストールlibc6-dev:i386はgnuコンパイラスイート全体の削除を要求しましたが(これは少し心臓発作を起こしました)、sudo apt-get install build-essentialすべてを使用した後は完全に機能しました。
Matt

私にとっては、nvidia-currentもアンインストールしましたが、問題なく再インストールしました。
ジェフ

1
albergeが提供するオプションは、32ビットライブラリをインストールするための他の多くのことを削除しないという点で優れていることに注意してください。
Fabio Zadrozny、2012
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.