web-dev-qa-db-ja.com

OSX-Homebrew経由でインストールされたgccバージョン4.2.1を4.9に置き換えます

これはしばらくの間私を悩ませてきました。巨大なC++ファイルをコンパイルしようとしています(職場のArch Linuxコンピューターで正常に動作するので、それが動作することはわかっています)。 MacでGCCバージョンを確認すると、次の結果が返されます

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
Target: x86_64-Apple-darwin14.1.0
Thread model: posix

また、Homebrewを使用して最新のGCCバージョンをインストールしました。

brew install gcc49

私の質問は、新しくインストールされたGCCバージョンを、ターミナルが使用するデフォルトバージョンとしてどのように適用するかです。

また、homebrewをisntall gccに使用すると、gcc-49という名前が付けられるため、パッケージ間で混乱が生じないことも認識しています。

XCodeに付属している4.2.1バージョンを、インストールした4.9バージョンに置き換える方法がわかりません。

ありがとう

編集:gcc --versionの完全なreturnステートメントを取得するために私のMacに切り替えました

編集2:ここでの私の最後のゲームは、ディレクトリに移動し、入力できるようにすることです

make
Sudo make install

作成されたデーモンをインストールします。現時点では、ランダムパッケージと標準ライブラリで大量のエラーが返されます

34
Dacotah

デフォルトでは、homebrewは、インストールするパッケージの実行可能ファイル(バイナリ)を/usr/local/binに配置します。これは、/binコアOSに属する標準化されたバイナリを格納します。したがって、brewコマンドでgcc-4.9/usr/local/binにインストールする必要があります。問題は、それをどのように使用するかです...いくつかのオプションがあります。

オプション1

今日と明日の1つまたは2つのものをコンパイルし、おそらく再びコンパイラを使用しない場合は、gccによってインストールされたhomebrewを次のようなフルパスで呼び出すこともできます。 :

/usr/local/bin/gcc-4.9 --version

オプション2

gccを非常に多く使用する場合、毎回完全なパスを明示的に入力するのは少し面倒なので、次を~/.bash_profileに入れることができます。

export PATH=/usr/local/bin:$PATH

新しいターミナルを起動すると、/usr/local/binを調べる必要があることがわかります。そのため、単に入力するだけで済みます。

gcc-4.9 --version

オプション

gccを使用して実際のバージョンを気にせずにコンパイラを呼び出す場合は、上記のオプション2を実行し、さらにこのようなシンボリックリンクを作成できます。

cd /usr/local/bin
ln -s  gcc-4.9  gcc

これにより、コマンドラインで次のようにhomebrewと入力するだけで、gcc-- installed gccを実行できます。

gcc --version

注:

後でgcc-4.13などをインストールする場合は、以前と同様にbrew installを実行してから、次のようにシンボリックリンクを変更します。

cd /usr/local/bin
rm gcc               # remove old link from gcc to gcc-4.9
ln -s gcc-4.13 gcc   # make new link from gcc to gcc-4.13
57
Mark Setchell

〜/ .bash_profileの$ PATHの順序を、インストール済みのbrewバージョンに更新する'export PATH=/usr/local/Cellar/gcc/5.1.0/bin:$PATH'は、私のために切り替えるのに十分ではありませんでした

〜。/ bash_profile(alias gcc='gcc-5')動作しますが、混乱を招く可能性があります。つまり、which gccはClangバージョンを返します

私のために働いたのは、醸造gccディレクトリにシンボリックリンクを作成し、パスを更新することでした(上記のポイント1)

cd /usr/local/Cellar/gcc/5.1.0/bin/gcc
ln -s gcc-5 gcc

which gccは正しいバージョン5.1.0を返します

8
eeny

OS XにはGCCがインストールされていません(4.2.1またはそれ以外)。 Clangはデフォルトのシステムコンパイラであり、以前から使用されています。 GCCとして呼び出された場合、4.2.1のC++ヘッダーを使用しています。 「gcc」(Clangを呼び出す)を呼び出す代わりに、Clangでコードをネイティブにコンパイルしようとしましたか? GCCエミュレーションモードよりも最新のヘッダーとC++サポートを備えています。

Gccバイナリuntarをダウンロードし、bin、lib include shareおよびlibexecファイルを/ usrディレクトリにコピーしてから、gcc --versionと入力します。

gcc --version gcc(GCC)4.9.2 20141029(プレリリース)Copyright(C)2014 Free Software Foundation、Inc.これはフリーソフトウェアです。コピー条件のソースを参照してください。保証はありません。市場性や特定の目的への適合性でさえも。

1
Pascal Waniha