2015-01-13 6 views
5

Standardmäßig verwendet clang, um seinen Wrapper zu erstellen.Wie man openmpi mit homebrew und gcc-4.9 baut?

Ich muss gcc-4.9 (Homebrew installiert) für den Wrapper angeben.

ich versucht habe

$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 

Schließlich habe ich geändert, um die openmpi Formel hinzu:

args = %W[ 
    CC=gcc-4.9 
    CXX=g++-4.9 
    FC=gfortran 
    F77=gfortran 

ich immer noch

$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 
+0

Warum installieren Sie es nicht einfach von der Quelle selbst? –

+0

Ich möchte lernen, wie man den Compiler auch auf andere Pakete setzt – ilciavo

+0

Meine Vermutung ist, dass das, was Sie getan haben, um das Homebrew-Rezept zu ändern, richtig ist und Sie nur die Ergebnisse einer alten Installation sehen. Zumindest sieht es gut für mich aus. –

Antwort

7

Schließlich wurde wie folgt gelöst:

1) Hinzufügen von Umgebungsvariablen für Homebrew (Sie können auch diese Zeilen zu Ihrem ~\.bashrc) hinzufügen:

export HOMEBREW_CC=gcc-4.9 
export HOMEBREW_CXX=g++-4.9 

2) neu erstellen und installieren openmpi und ihre Abhängigkeiten von der Quelle

brew reinstall openmpi --build-from-source 

3) Am Ende Sie erhalten eine Nachricht, wie erhalten:

==> Reinstalling open-mpi 
==> Using Homebrew-provided fortran compiler. 
This may be changed by setting the FC environment variable. 
==> Downloading http://www.open-mpi.org/software/ompi/v1.8/downloads/openmpi-1.8. 
Already downloaded: /Library/Caches/Homebrew/open-mpi-1.8.4.tar.bz2 
==> ./configure --prefix=/usr/local/Cellar/open-mpi/1.8.4 --disable-silent-rules 
==> make all 
==> make check 
==> make install 
Warning: open-mpi dependency gcc was built with a different C++ standard 
library (libstdc++ from clang). This may cause problems at runtime. 
    /usr/local/Cellar/open-mpi/1.8.4: 785 files, 23M, built in 41.2 minutes 

$mpicc --showme 
gcc-4.9 -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 

Auf meinem MacBook ich mit XCode einige Konflikte hatte 6,2, diefolgende gelöst wurden

Allerdings habe ich beschlossen, mit der clang Version zu bleiben, um Probleme mit gfortran zu vermeiden.

+0

Warum haben Sie sich entschieden mit Clang zu bleiben, um Probleme mit gfortran zu vermeiden? Ich bekomme diese Aussage nicht. – Chiel

+0

@Chiel Ich hatte Probleme beim Bauen mit 'openmpi' und' gfortran' und baute 'openmpi' mit' clang' hemmed 'gfortran' – ilciavo

+0

Arbeitete perfekt für mich, ohne Probleme! Und unsere MPI-Anwendung läuft ein * lot * schneller (~ 30%) wenn OpenMPI kompiliert mit GCC statt OpenMPI mit Clang. – Bart