独自の32ビットライブラリを必要とし、64ビットDebian(jessie、AMD64)で実行できるC++プログラムの開発を検討しています。 32ビットのライブラリを使用できるようにするには、32ビットの実行可能ファイルを作成する必要があると思います(または64ビットの実行可能ファイルからそのライブラリを使用する方法はありますか?)
64ビットDebianでプログラムをビルドするにはどうすればよいですか?または、32ビットのDebianマシンを使用してビルドし、その後64ビットのDebianに移行する必要がありますか?
通常はcmakeを使用します。
はい、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
で始まる適切なライブラリをインストールします。