如何使用自制软件和gcc-4.9构建openmpi?

如何使用自制软件和gcc-4.9构建openmpi?,gcc,clang,homebrew,openmpi,Gcc,Clang,Homebrew,Openmpi,默认情况下,brew安装openmpi使用clang创建其包装器 我需要为包装器指定gcc-4.9(已安装自制) 我试过了 $export CC=gcc-4.9 $brew install openmpi $brew install --cc=gcc-4.9 openmpi $brew install --with-gcc49 openmpi $brew install -CC=gcc-4.9 -CXX=g++-4.9 -FC=gfortran -F77=gfortran openmpi

默认情况下,
brew安装openmpi
使用
clang
创建其包装器

我需要为包装器指定
gcc-4.9
(已安装自制)

我试过了

$export CC=gcc-4.9
$brew install openmpi

$brew install --cc=gcc-4.9 openmpi

$brew install --with-gcc49 openmpi

$brew install -CC=gcc-4.9 -CXX=g++-4.9 -FC=gfortran -F77=gfortran openmpi

$brew install openmpi --cc=gcc-4.9 

$brew install openmpi --CC=gcc-4.9 --CXX=g++-4.9 --FC=gfortran --F77=gfortran
最后,我修改了
openmpi
公式,添加了:

 args = %W[
  CC=gcc-4.9 
  CXX=g++-4.9 
  FC=gfortran 
  F77=gfortran
我还是会

$mpicc --showme
clang -I/usr/local/Cellar/open-mpi/1.8.4/include -L/usr/local/opt/libevent/lib -L/usr/local/Cellar/open-mpi/1.8.4/lib -lmpi

最后,解决方法如下:

1) 为自制添加环境变量(您也可以将这些行添加到
~\.bashrc
):

2) 从源代码重建并重新安装
openmpi
及其依赖项

brew reinstall openmpi --build-from-source
3) 最后,您将收到如下信息:

==>重新安装open mpi
==>使用自制的fortran编译器。
这可以通过设置FC环境变量进行更改。
==>下载http://www.open-mpi.org/software/ompi/v1.8/downloads/openmpi-1.8.
已下载:/Library/Caches/Homebrew/open-mpi-1.8.4.tar.bz2
==>。/configure--prefix=/usr/local/cell/open mpi/1.8.4--禁用静默规则
==>全包
==>检查一下
==>进行安装
警告:开放MPI依赖性GCC是用不同的C++标准构建的
库(来自clang的libstdc++)。这可能会导致运行时出现问题。

你为什么不自己从源代码处安装它呢?我想学习如何为其他软件包设置编译器。我猜你修改自制配方的做法是正确的,你只是看到了旧安装的结果。至少在我看来这很好。如果你真的想在这里有一个长期的解决方案,你可以提交一个补丁给自制的人,并添加一些新的标志,让你可以选择设置自己的编译器。是的,我想这里他们给出了一个类似的解决方案。为什么你决定留在clang以避免gfortran的问题?我不明白这句话。@Chiel我以前在使用
openmpi
gfortran
构建时遇到问题,因此使用
clang
禁用
gfortran
构建
openmpi
对我来说非常有效,没有任何问题!当使用GCC编译的openMPI而不是带有clang的openMPI时,我们的MPI应用程序运行得更快(~30%)。@bart您正在使用哪个版本的GCC和openMPI?@ilciavo GCC 6.1和openMPI 1.10.2
brew reinstall openmpi --build-from-source