一部の古いコードには、Xcode 4.2 で gcc 4.2 を使用する必要があります。どうすれば表示されるようになりますか。Xcode4.2 ではサポートが終了したようです。
ありがとう
xcode 4.2でgcc 4.2での
コンパイルを有効にする方法を次に示します。これは主にコマンド ライン経由で行われるため、: で始まる行が表示されたら、 Terminal.appを開いて.の後に始まるコマンドを実行する必要があります。[ 15:30 jon@MacBookPro / ]$
$
このプロセスではファイルやディレクトリが削除されたり削除されたりしないため、将来 LLVM でコンパイルする必要がある場合に簡単に元に戻すことができます。
ダウンロード - ただし、まだインストールしないでください- xcode_4.1_for_lion.dmgまたはxcode_4.1_for_snow_leopard.dmg
次の手順に従って、Xcode 4.1 を にインストールします/Developer-4.1
。
/Developer
作業ディレクトリ (Xcode 4.2 がインストールされている場所) をバックアップします。
[ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer /Developer-4.2
デフォルトのインストール場所を使用して Xcode 4.1 インストーラーを実行します ( /Developer
)
新しい Xcode 4.1 インストールを次の場所に移動します/Developer-4.1
。
[ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer /Developer-4.1
Xcode 4.2 開発者ディレクトリを次の場所に戻します/Developer
。
[ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer-4.2 /Developer
Xcode 4.2GCC 4.2.xcspec
ファイルを編集して、コンパイラ オプションのリストに gcc 4.2 が表示されるようにします[1]。
[ 15:30 jon@MacBookPro / ]$ sudo vi "/Developer/Library/Xcode/PrivatePlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/GCC 4.2 (Plausible Blocks).xcplugin/Contents/Resources/GCC 4.2.xcspec"
41行目と42行目を次のように変更します。
ShowInCompilerSelectionPopup = NO;
IsNoLongerSupported = YES;
これに:
ShowInCompilerSelectionPopup = YES;
IsNoLongerSupported = NO;
Xcode 4.2 iOS/Simulator Frameworkusr
ディレクトリをバックアップします。
[ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer/Platforms/iPhoneOS.platform/Developer/usr /Developer/Platforms/iPhoneOS.platform/Developer/usr.backup
[ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer/Platforms/iPhoneSimulator.platform/Developer/usr /Developer/Platforms/iPhoneSimulator.platform/Developer/usr.backup
Xcode 4.1 iOS/Simulator Frameworkusr
ディレクトリを Xcode 4.2 にコピーします。
[ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/Platforms/iPhoneOS.platform/Developer/usr /Developer/Platforms/iPhoneOS.platform/Developer/usr
[ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/usr /Developer/Platforms/iPhoneSimulator.platform/Developer/usr
gcc
およびinfo
iOS SDK ライブラリ ディレクトリを Xcode 4.1 から Xcode 4.2 にコピーします[2] :
[ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib/gcc /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/gcc
[ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib/info /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/info
gcc-4.2 を使用してコンパイルしてください!
これは、このプロセスについてもう少し詳しく書いたブログ投稿です。問題が発生した場合や質問がある場合は、お気軽にブログにコメントを残してください。
[1]コマンド ラインから ( 、、、などvi
を使用して) 開く場合は、パスを引用符で囲むか、スペースをエスケープしてください。emacs
nano
"/long path/with spaces/in it/file.xcspec"/some/long\ path/with\ spaces/in\ it/file.xcspec
[2] iPhoneOS.platform SDK には独自の個別の/usr/lib
ディレクトリがありますが、iPhoneSimulator.platform SDK にはないため、これが必要です。
したがって、gcc 4.2 を Xcode 4.2 (非 iOS) の新規インストールで動作させるための完全なプロセスは次のとおりです。
gcc 4.2 をインストールします。
sudo port install apple-gcc42
Xcode 4.2 GCC 4.2.xcspec ファイルを編集して gcc 4.2 をコンパイラ オプションのリストに表示することにより、gcc 4.2 がコンパイラ オプションとして表示されるように Xcode を微調整します。
編集用に xcspec ファイルを開きます。
sudo vi "/Developer/Library/Xcode/PrivatePlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/GCC 4.2.xcplugin/Contents/Resources/GCC 4.2.xcspec"
41 行目と 42 行目を次のように変更します。
ShowInCompilerSelectionPopup = NO;
IsNoLongerSupported = YES;
これに:
ShowInCompilerSelectionPopup = YES;
IsNoLongerSupported = NO;
Xcode が期待する場所に gcc 4.2 バイナリをリンクします。
sudo ln -s /opt/local/bin/gcc-apple-4.2 /Developer/usr/bin/gcc-4.2
sudo ln -s /opt/local/bin/g++-apple-4.2 /Developer/usr/bin/g++-4.2
このブログ投稿で問題と回避策を説明しました。これは、私が見つけた情報を要約したものです。お気軽にコメントください。
これを共有してくれてありがとう!半日ほど苦労しましたが、最終的には、目標を達成するために必要な手順はわずかであることがわかりました。
アプリをコンパイルするために GCC-4.2 だけが必要な場合(iOS のものは必要ありません) は、非常に簡単です。何もインストールする必要はなく、次のいくつかの手順に従うだけです。
編集: GCC 4.2 をまだインストールしていない場合 (以前のバージョンの Xcode から、または手動でインストールした場合)、コメントの Sean DeNigris の指示に従ってください。
元の説明の手順 3 に従い
ます。Xcode 4.2 GCC 4.2.xcspec ファイルを編集して、コンパイラ オプションのリストに gcc 4.2 が表示されるようにします。
Xcode が再びコンパイラを検出するようにします。
ln -s /usr/bin/gcc-4.2 /Developer/usr/bin/gcc-4.2
また、リンカーを利用可能にします。
ln -s /usr/bin/g++-4.2 /Developer/usr/bin/g++-4.2
これは私にとって完璧に機能します!しかし、私が言ったように、それは iOS 以外の製品専用です!
シンプルで便利なソリューションhttps://github.com/kennethreitz/osx-gcc-installer/スタックオーバーフロー の宣言のリストを自動化します