web-dev-qa-db-ja.com

64ビットDebianで32ビットソフトウェアをビルドして実行するにはどうすればよいですか?

独自の32ビットライブラリを必要とし、64ビットDebian(jessie、AMD64)で実行できるC++プログラムの開発を検討しています。 32ビットのライブラリを使用できるようにするには、32ビットの実行可能ファイルを作成する必要があると思います(または64ビットの実行可能ファイルからそのライブラリを使用する方法はありますか?)

64ビットDebianでプログラムをビルドするにはどうすればよいですか?または、32ビットのDebianマシンを使用してビルドし、その後64ビットのDebianに移行する必要がありますか?

通常はcmakeを使用します。

3
Roel Schroeven

はい、32ビットライブラリを使用するには、32ビットバイナリを作成する必要があります。

AMD64上のDebian 8では、 gcc-multilib (Cの場合)または g++-multilib (C++の場合)およびGCCを使用して32ビットのバイナリを構築できます。 -m32オプション。

CMakeを使用すると、フラグに-m32を追加するだけで十分だと思います。 1つのプロジェクトで32ビットと64ビットの両方のビルドにCMakeを設定することは可能ですが、かなり複雑です。詳細な例については、 rr ’s CMakeLists.txt を参照してください。

32ビットバイナリをrunするには、i386のマルチアーチサポートを有効にする必要があります。

Sudo dpkg --add-architecture i386
Sudo apt-get update

次に、libc6:i386で始まる適切なライブラリをインストールします。

7
Stephen Kitt