1

MacPorts 経由で取得した GCC 4.7.2 を実行している Mac OS X 10.8.2 ワークステーションでビルドしています。このセットアップで64 ビット ( x86_64) アプリをビルドできます。

-arch i386をコンパイル フラグに追加して、ソースから 32 ビット バイナリをビルドしようとしています。10.5 および 10.6 で 32 ビット クライアントのサポートを追加したいと考えています。

32 ビット ライブラリの欠如に関連していると思われる次のエラー メッセージが (特に) 表示されます。

ld: warning: ignoring file /opt/local/lib/gcc47/libgcc_ext.10.5.dylib, missing required architecture i386 in file /opt/local/lib/gcc47/libgcc_ext.10.5.dylib (1 slices)
ld: warning: ignoring file /opt/local/lib/gcc47/gcc/x86_64-apple-darwin12/4.7.2/libgcc.a, file was built for archive which is not the architecture being linked (i386): /opt/local/lib/gcc47/gcc/x86_64-apple-darwin12/4.7.2/libgcc.a

私の質問は次のとおりです。

  • 代わりに、これに使用する必要がある別のフラグはあり-arch i386ますか?

  • i386または、 32 ビットをサポートするためにインストールする必要があるライブラリはどこで入手できますか (またはどのようにコンパイルできますか) 。

i386( GCC 4.7.2 ソースをダウンロードしてアーキテクチャ ライブラリをコンパイルできます./configureか? これを有効にするためにステートメントに追加する必要がある特定のオプション セットはありますか?)

  • これらのライブラリがインストールされると、現在の gcc インストールはこれらのライブラリがどこにあるかをどのように「認識」しますか?

  • Xcode 4.5.2 経由で追加できるものはありますか? すでにコマンドラインでこれを行っていますが、環境設定アプレットのダウンロード オプションとして「コマンドライン ツール」と iOS シミュレータしか表示されません。

4

2 に答える 2

2

GCCのMacPortsインストールを削除し、XCodeを介して「コマンドラインツール」パッケージをインストールします。これを実行gcc -arch i386すると、期待どおりに機能します。

于 2013-01-11T22:13:27.317 に答える
1

オプションを使用して GCC 4.7.2 の MacPorts インストールを再構築すると、 32 ビット ( ) と 64 ビット( ) の両方のバイナリ+universalのコンパイルがサポートされました。i386x64_86

于 2013-01-13T01:35:53.360 に答える