3

i386 アーキテクチャ用に x264 ライブラリをコンパイルするにはどうすればよいですか? 通常、アーキテクチャを強制するには、次のコマンドを使用します。

./configure CC="gcc -arch i386" CXX="g++ -arch i386"

ただし、x264 では動作しないようです。

x264 をコンパイルするには、構成して作成します。これにより、x86_64 ライブラリが生成されます。上記のコマンドを使用して i386 アーキテクチャを強制しようとすると、次のメッセージが表示されます。

不明なオプション CC=gcc -arch i386、無視されました 不明なオプション CXX=g++ -arch i386、無視されました

configure スクリプトは、X86_64 プラットフォーム用に構成されていることを出力します。i386 プラットフォーム用に構成されたものを確認し、i386 バイナリを生成したいと考えています。

4

4 に答える 4

5

自動ツール化configureされたスクリプトには特別なコマンドライン引数が--buildあり--host、クロスコンパイルの構成に使用されます。一部の古い構成スクリプトは、コンパイラの出力を検査することで、クロスコンパイルしていることを把握しようとしますが、構成スクリプトに明示的に指示する方が、はるかに健全で堅牢です。

たとえば、ここを参照してください。またはこの質問

(ああ、あなたが見ている「不明なオプション」エラーの直接の理由は、環境変数のオーバーライドがshコマンドラインのスクリプトの名前の後ではなくmakeにあることです。変数定義を指定できる場所ではありませんmake コマンドライン自体で。)

于 2011-08-25T15:06:47.437 に答える
4

configure スクリプトと config.sub ファイルを読んだ後、libx264 の i386 バージョンをビルドするために以下が機能することがわかりました。

./configure --host=i386-apple-darwin

また、ある時点で「動作する C コンパイラが見つかりません」というエラーが発生しました。LDFLAGS 環境変数を何か間違ったものに設定していました。そのため、先に進む前に LDFLAGS と CFLAGS が空 (または良好) であることを確認してください。

export CFLAGS=""
export LDFLAGS=""
于 2012-11-28T20:37:16.337 に答える
2

x86-64 gcc を使用している場合は、「-m32」を指定して、32 ビット バイナリをコンパイルするように要求できます。したがって、次のように configure を使用できるはずです。

./configure CFLAGS="-m32"

ただし、それが機能しない場合は、自動ツールのバグであり、CFLAGS が上書きされている可能性があります。あなたが試すことができる代替:

make CFLAGS="-m32"

後者の問題は、これを行うことを覚えておく必要があることです。そうしないと、異なるアーキテクチャ用に構築されたいくつかのオブジェクト ファイルとの問題をリンクすることになります。

于 2011-08-25T15:24:14.733 に答える
0

http://developer.apple.com/library/mac/#documentation/Porting/Conceptual/PortingUnix/compiling/compiling.htmlにある Apple の推奨に従って、次のことを 試してください。

./configure
make CFLAGS="-arch i386" LDFLAGS="-arch i386"

それが機能しない場合は、-isysroot フラグも追加します (ただし、10.4u ではなく 10.6 または 10.7)。

于 2011-08-27T16:48:36.720 に答える