2016-12-19 14 views
0

Linux(CentOS)マシンに2つのGCCコンパイラがインストールされています。古いバージョンのGCC(4.4.7)はデフォルトのフォルダ(CentOSに付属)にあり、新しいものは/usr/local/gcc/4.9.3/にあります。私のコードでは、MPIとLAPACK/LAPACKE/BLASライブラリを使用しています。古いGCCでは、次のようにソースをコンパイルしています(例えば "main.cpp")。デフォルトのGCCコンパイラをLinux上でMPIで使用するために変更する方法CentOS

mpiCC main.cpp -o main -L/home/USER1/lapack-3.6.1 -llapacke -llapack -lblas -lm -Wall

これでも古いGCC 4.4.7が呼び出されます。上記のMPIコンパイル(mpiCC)が/usr/local/gcc/4.9.3/el6/bin/の新しい場所から実行可能なGCC 4.9.3を起動するように変更する必要があるのは何ですか? MPICH Installerのガイドバージョン3.2(6ページ)から

「MPICH configureコンステップはあなたのためのC、C++、およびFortranコンパイラを探そうとしますが、デフォルトまたは必要性を上書きしたいのいずれかの場合configureが認識できないコンパイラを指定するには、コマンドラインで指定することができます[...]。例えば、両方のシステムでGNUコンパイラの代わりにインテルコンパイラを選択するには、 "

./configure CC=icc CXX=icpc F77=ifort FC=ifort ...

でGCCコンパイラの異なるバージョンを区別する方法はありますか?

+0

2つのバージョンのgccがインストールされている理由は何ですか?あなたは、OSに付属の古いものを更新することができます。 –

+0

CentOSはGCC 4.4.7に多くの依存関係があるためです。 (そのバージョンとまったく同じですが)GCCを新しいものに置き換えることはできませんが、新しいものをインストールする必要があります。それはなぜそれのようなものです、私は知らない。一方、4.4.7は私にとってはうまくいかず、より高いバージョンでコンパイル/作業するコードがあります。 – Boki

答えて

1

あなたは本当にGCC同時にインストールされ、ここではそれらの両方を使用しての2つのバージョンが必要な場合は、これを行う方法について説明します良いリンクです:私はmpiCCが最初gccを使用して推測

http://gcc.gnu.org/faq.html#multiple

+1

はい、しかし、現在のMPIを新しいGCCと互換性を持たせる方法を教えてください。そしてそれは不可能です。基本的なC AIは変更されませんが、他のGCC言語ではそれは変わりません。実際、OP *には既にGCCの2つのバージョンがインストールされています。 –

3

コンパイラは$PATH変数にあります。

あなたは実行することで、GCCの新しいバージョンを設定することができるはずです。

PATH="/usr/local/gcc/4.9.3/el6/bin:$PATH" mpiCC main.cpp -o main -L/home/USER1/lapack-3.6.1 -llapacke -llapack -lblas -lm –Wall 
+2

はい、互換性がないことがあります。少なくともGCCとそのMPIバインディングのC++とFortranの部分(MPIのものは推奨されていませんが)にあります。 –

+0

'PATH ="/usr/local/gcc/4.9.3/el6/bin:$ PATH "'私にコマンドが見つかりません。 – Boki

+0

@Boki weird、これは割り当てであり、コマンドではありません。 – piarston

-1

最後にどのように発見しました。ここにレシピがある:

1)あなたはシェルの場合は、あなたのbashに設定されていない場合は、bashでチェック:$エコー$ SHELLが

/binに/ tcshの

それはtcshをしたと設定する必要がbashに。

2)はbashに切り替えます。$ bashの

のbash-4.1 $

3)PATHの前にGCCの新しいバージョンを追加します。

のbash-4.1 $輸出PATH =/USR /ローカル/ GCC/4.9.3/EL6/binに:$ PATHに

4)PATHをチェックします。bash-4.1 $が$ PATHに

/usr/local/gcc/4.9.3/el6/をエコーbin:/usr/lib64/qt-3.3/bin:/ usr/local/bin:/ bin:/ usr/bin

5)GCCのバージョンを確認してください(PATHから最初のGCCを取得します): bash-4。1 $のgcc --version

のgcc(GCC)4.9.3

注:これはちょうど現在のセッションのためです。

関連する問題