64ビットシステムを使用していますが、32ビットバイナリのセットが必要です。 32ビット/ x86メイクファイルを生成するには、configureスクリプトにどのオプションを渡す必要がありますか?
次の引数を設定スクリプトに渡すと、64ビットLinuxで32ビットライブラリを構築できました
./configure --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
ジャックの答えは不完全です。
32ビットコンパイルにはコンパイラ/ libcサポートが必要です。 Ubuntuのようないくつかのディストリビューションでは、パッケージgcc-multilib
および/またはg++-multilib
をインストールする必要があります。
Sudo apt-get install gcc-multilib g++-multilib
次に、前述のようにconfigureを呼び出して、32ビットホストを指定し、32ビットコンパイルフラグを渡すことができます。
./configure --Host=i686-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
Multilibがインストールされていない場合、configure: error: C compiler cannot create executables
フラグを渡すと、-m32
などのエラーが発生します。
代わりにカスタムコンパイラを設定することで、より良い成功を収めました。このように、カスタムCFLAGSを使用するものも含め、すべての構成テストが正しく機能しました。
./configure CC="gcc -m32" CXX="g++ -m32"
もちろん、アプリケーションが使用するすべてのライブラリの32ビットバージョンが必要なため、ライブラリが見つからないというエラーは32ビットバージョンを参照しています。
Gcc/g ++を想定:
CPPFLAGS=-m32 ./configure ...
上記のことに対する別の方法は、(もしあれば)専用のx86コンパイラを使用することです。設定行は次のようになります(パターン「<toolname> -x86」にちなんでx86-toolsに名前を付けました):
CC="/path/to/c/compiler/gcc-x86" CXX="path/to/cpp/compiler/g++-x86" LD="path/to/linker/ld-x86" ./configure