2

通常、私の OS X ビルドでは、10.6 を実行する古い Mac Book Pro でアプリケーションをコンパイルしています。これにより、このバージョンの OS X がサポートされていることが保証されます。

ただし、さまざまな理由により、MBP は長期的なオプションではなくなったため、10.8 を実行する最新のデバイスでコンパイルしています。ただし、これを行うと、-mmacosx-version-min=10.6 フラグが設定されていても、アプリケーションが 10.6 で動作しません。フラグを設定すると発生するエラーは、libSystem.B.dynlib の「Symbol not found: _wcsdup」です。

このエラーを調べたところ、唯一の推奨事項は、10.6 SDK に直接リンクすることです。ただし、MPB から新しいマシンに 10.6 SDK をコピーしようとすると (10.6 SDK が 10.8 にインストールされていないため)、「エラー: ビット/c++config.h: そのようなファイルやディレクトリはありません」などのエラーでコンパイルに失敗します。 「これは、SDK を「インストール」した方法によるものだと思いますが、他の人はこれで成功しています。

誰にも解決策がありますか?

4

2 に答える 2

0

この手順で古い SDK とコンパイラを再インストールできます: Xcode 4 に ppc/ppc64 と 10.4/10.5 SDK の完全なサポートを復元するにはどうすればよいですか?

スクリプト内の xcode インストールのパスを変更する必要があります。

また、10.7 以降をターゲットにする場合にのみ使用できる -stdlib=libc++ も必要になるため、10.6 をターゲットにする場合はおそらく -std=c++11 を使用できません。

Apple は 10.7 以降、libc++ バイナリのみを配布しています。独自の libc++ をビルドし、それをアプリと共に 10.6 マシンにデプロイできます。しかし、Apple は、10.7 未満のものを対象とする場合、-stdlib=libc++ を許可しないようにコンパイラをハードコーディングしました。

于 2012-11-14T16:33:36.443 に答える
0

VMWare や VirtualBox などの VM で 10.6 を実行します。

于 2012-11-14T07:06:16.397 に答える