2012-01-27 18 views
1

私は64ビットのビルド環境をUbuntuにインストールしています。たとえば、あるライブラリのソースコードをダウンロードし、そのソースコードを使って32ビット版と64ビット版を作成したいとします。ライブラリの32ビット版と64ビット版を作るためのガイド(Linux版)

./configure --prefix=/opt/libtvzombie --with-opengl --with-other-option1 

...と、以下のように/opt/libtvzombieにそれを構築し、インストールします:誰かが正常にこのような64ビット版のためにそれを構成することができよう

ライブラリは./configureスクリプトが付属しています

make 
sudo make install 
sudo sh -c 'echo /opt/libtvzombie/lib > /etc/ld.so.conf.d/tvzombie.conf' 
sudo ldconfig 

質問は次のとおりです。

  1. 平均の./configureスクリプトを64ビットシステムで32ビットモードでコンパイルするにはどうすればよいですか?私は-m32 g ++でコンパイルスイッチを使うことができますが、それは私が64ビット環境でコンパイルしていることを./configureが認識しているので、autotoolsの方法ではありません。

  2. この32ビット版はどこにインストールする必要がありますか?多分/opt/libzombie32に?

  3. 同じ名前のライブラリの32ビット版と64ビット版の間に名前の競合はありませんか?

答えて

2

/opt/libzombie32にインストールする場合は、--prefix =/opt/libzombie32を指定し、CFLAGSに-m32を指定する必要があります。個人的に、私は各パッケージのために別のディレクトリにインストールするには、悪い考えだと思う、あなたは次のような何かをやったほうが良いと思います:

 
$ sudo sh -c 'echo CFLAGS="$CFLAGS -m32" > /opt/lib32/share/config.site' 

そして--prefix =は/ opt/lib32がで設定します。 config.siteでCFLAGSを指定すると、--prefix =/opt/lib32で構成された自動ツールであれば、CFLAGSで-m32が指定されます。 C++を処理するには、CXXFLAGSを指定することもできます。

+0

ありがとうございます!私が知る限り、 'config.site'のオプションは'。/ configure'スクリプトによって自動的に選択されます。 – ezpresso

+0

'--prefix =/opt/lib32'ではなく' --libdir =/opt/lib32'を意味しませんでしたか? – ezpresso

+0

@ezpressoはい、ただし、--prefix =/opt/lib32を持つパッケージの場合のみ –

4

-m32フラグが "32ビット"を意味することはわかりません(結局、別のコンパイラとはまったく異なる何かを意味する可能性があります。ia64などで拒否される可能性もあります)。ホストタイプ。ホストタイプは、もしプログラムがそのようにコード化されていれば、CCとCFLAGSから独立した特定の動作を選択するためにも使用されるかもしれません。--host =は実行する設定が自動検出されていなければ常に指定されます。

./configure --host=i686-linux-gnu CFLAGS="-m32" LDFLAGS="-m32" 
関連する問題