2009-07-22 17 views
24

これを行う方法があるはずです。おそらく、Xcodeの最新バージョン(そして実際にはXcodeのすべてのバージョン)にはLeopardのGCC 4.0.1とGCC 4.2が付属していることに気づいているでしょう。 GCC 4.2.1はデフォルトのシステムコンパイラですが、GCC 4.2はXcodeプロジェクト設定で設定できるオプションのコンパイラです。Mac OS X LeopardのデフォルトコンパイラとしてGCC 4.2を設定する

GCC 4.2をすべてのオプションのデフォルトコンパイラとして設定する方法を知っている人はいますか? XCCで何をしても、GCC 4.2ではなくGCC 4.0.1を使用することをお勧めします。私はそれが単純にパス変数やそのようなものを変更する場合であると仮定していますが、私はこの変数に困惑しています。

何か助けていただければ幸いです。ありがとう。

答えて

19

コマンドラインの使用方法スクリプトを設定します。

cd /usr/bin 
    rm cc gcc c++ g++ 
    ln -s gcc-4.2 cc 
    ln -s gcc-4.2 gcc 
    ln -s c++-4.2 c++ 
    ln -s g++-4.2 g++ 

あなたがしたい場合は、それらを復元することができますので、現在のリンクターゲットの記録を作成します。

あなたは、システム全体の設定を変更したいの/ usr/binに(たとえば、$HOME/bin)の前にPATHにディレクトリを追加し、そこに

をシンボリックリンクを作成しない場合、私はこれが影響するかどうかをテストしていません私はXcode(コマンドラインのみ)を使用しないので、Xcodeプロジェクト。

+0

これは 'gcc_select'スクリプトで扱われていましたが、Leopard/Xcode 3.1はこれ以上提供していないようです。私は何年もの間OS Xを使用していないので、私は少し触れています... – ephemient

+0

ありがとう、それは問題を修正しました。他の誰かがこれを行うことを計画しているのと同じように、新しいシンボリックリンクを別のディレクトリに置くことを強く推奨します。元の設定に戻したい場合は、シンボリックリンクを削除するか、ディレクトリ。 – Cromulent

+0

Martinさん、関連する質問、どのようにCCとどの-archを使うのですか?setup.py/pydistutils.cfgを教えてください。 たとえば、私のgcc-4.2には /usr/bin/i686-apple-darwin8-g++-4.2.1がないため、gcc-4.2 -arch ppcのみが必要です。 Thanks – denis

18

[プロジェクトまたはターゲット情報]ウィンドウで、ビルド設定 "C/C++コンパイラのバージョン"(GCC_VERSION)を設定します。

「ターゲット情報ウィンドウ」で、「システムCルール」をあなたの好きなGCCバージョンに変更することができます。

更新:コマンドラインに関して、私はLeopardに何をデフォルトのコンパイラにするかの決定を任せました。 Autotoolsのようなツールで別のコンパイラを使いたい場合は、CC変数を定義する方がよいでしょう。すべてのための

CC=gcc-4.2 ./configure 

または

export CC=gcc-4.2 
+0

残念ながら私はすでにそれらについて知っていますが、プロジェクトごとにあります。私はあなたがcommmand行からGCCを呼び出すときに話しています。 Xcodeで何をルールに設定しても、コマンドラインからは常にGCC 4.0.1が使用されます。 – Cromulent

+0

私の申し訳ありません申し訳ありません。私はそれを更新しています – IlDan

+6

rm/ln -sソリューションと比較すると、 'export CC = gcc-X.Y'がより実用的です(そして* nix風)。 何かがうまくいかず、簡単にユーザ/システム全体をセットアップできる場合は、.bash_profile(またはお気に入りのシェルrc)を編集するだけです。 – lsdr

16

アップルも、ダーウィンでもないポートは、システムコンパイラ(GNU/Linux上に存在するとして)のデフォルトのバージョンを変更するにはgcc_selectプログラムを持っているので、私はXCodeので安全側になりたい(と考えシステムの残りの部分)、シンボリックリンクをそのまま残して、代わりに使用するGCCのバージョンを上書きする環境変数を設定することをお勧めします。私は

export CC=/usr/bin/gcc-4.2 
export CPP=/usr/bin/cpp-4.2 
export CXX=/usr/bin/g++-4.2 

を以下持っていると私は成功したソースからGCC 4.2で、次のライブラリをコンパイルし、私の.profileファイルに

  • OpenSSLの
  • のlibjpeg
  • のlibpngはzlibの
  • GST

しかし...私はブースト1を得ることができませんでした。Boost for GCC 4.2をコンパイルするにはgcc v4.2を指し示すように/ usr/bin /にあるシンボリックリンクを変更する必要がありました

長い間、Boostライブラリのコンパイルが完了してからGCC 4.2シンボリックリンクを元のシステムバージョンgcc-4.0に戻しました。

+0

これを試して、私のデフォルトのコンパイラを変更していない。 – user124384

2

CC envが無視され、頻繁に切り替えが行われるため、Pythonで簡単なgcc_selectを書きました。私はそれをここに掲載するかもしれないと思った。現在のシンボリックリンクを見るには、4.0または4.2かargなしでargを呼び出します。あなたは4.0と4.2以外のバージョンを持っている場合は修正が必要になります

#!/usr/bin/python 
import sys 
import os 

os.chdir('/usr/bin') 

files = ['cc', 'gcc', 'c++', 'g++'] 

if '4.0' in sys.argv: 
    ver = '4.0' 
elif '4.2' in sys.argv: 
    ver = '4.2' 
else: 
    print "Unknown gcc version. Current setting:" 
    os.system('ls -al %s' % ' '.join(files)) 
    sys.exit(1) 

os.system('rm %s' % ' '.join(files)) 
for f in files: 
    os.system('ln -s %s-%s %s' % (f, ver, f)) 

print "Changed to gcc version %s" % ver 
3

イム私の経験(制限)、.profileファイルにCCを変更してライオンの(10.7.2)をデフォルトのi686-りんごdarwin11-LLVMを変更しません。 -gcc-4.2。これはAppleの独自のSYMのリンクとは何かを持っている場合、私は疑問に思う: 部分:ls -la /usr/bin | grep .*gcc.*

lrwxr-xr-x  1 root wheel  12 25 oct 19:31 cc -> llvm-gcc-4.2 
lrwxr-xr-x  1 root wheel  12 25 oct 19:31 gcc -> llvm-gcc-4.2 
lrwxr-xr-x  1 root admin  32 25 oct 19:31 llvm-gcc-4.2 -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2 

私はこれらを破壊し、マーティンVあたりのUSR/binに/ GCC-4.2に自分を追加することについて警戒していLOWISさん。回答。

2

私は間違っているかもしれませんが、Xcodeが選択したものだと思いましたか?

xcode-select --switch /path_to_tool_suite 

私が言ったように、私はこの上で100%ではないんだけど、私はそれがターミナルとコンパイラを使用するようにOSを呼び出す他のアプリなど、すべてのプログラムのためのデフォルトを設定すると確信しています。

関連する問題