我在Linux(CentOS)机上安装了两个GCC编译器。GCC(4.4.7)的旧版本位于默认文件夹中(带有CentOS),我打算使用的较新的文件夹位于/usr/local/gcc/4.9.3/中。我的代码使用MPI和Lapack/Lapacke/Blas库,并且使用了我用来编译源的旧GCC(例如" main.cpp"):
mpicc main.cpp -o main -l/home/home/user1/lapack -3.6.1 -llapacke -llapack -llapack -lblas -lm -lm - wall
这仍然调用旧的GCC 4.4.7。我应该修改什么,因此上述MPI汇编(MPICC)调用gcc 4.9.3可执行文件可从/usr/local/gcc/4.9.3/el4.9.3/el6/bin/?
>来自MPICH安装程序指南3.2(第6页):
" MPICH配置步骤将尝试为您找到C,C 和Fortran编译器,但是如果您要覆盖默认值或需要指定配置不识别的编译器,则可以在命令行[...]。例如,选择Intel编译器,而不是具有两者的系统上的GNU编译器,请使用"
./configure CC=icc CXX=icpc F77=ifort FC=ifort ...
是否有一种方法可以在./configure
中的不同版本的GCC编译器之间进行划分?
我猜mpiCC
使用$PATH
变量中的第一个gcc
编译器。
您应该能够通过运行:
设置新版本的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
如果您真的想要同时安装两个版本的GCC,并且在这里使用两个版本是一个很好的链接,可以解释如何做到这一点:
http://gcc.gnu.org/faq.html#multiple
最终找到了如何。这是食谱:
1)检查您的外壳是否为bash,如果未设置为bash:$ echo $ shell
/bin/tcsh
是TCSH,需要设置为bash。
2)切换到bash:$ bash
bash-4.1 $
3)在路径的正面添加新版本的GCC:
bash-4.1 $ export path =/usr/locar/locar/gcc/4.9.3/el6/bin:$ path
4)检查路径:bash-4.1 $ echo $ path
/usr/local/gcc/4.9.3/el6/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin/bin:/bin:/bin:/usr/bin/bin/bin
5)检查使用的GCC的版本(从路径拾取第一个GCC):bash-4.1 $ gcc- version
GCC(GCC)4.9.3
注意:这仅适用于当前会话。