2015-01-13 13 views
5

Theo mặc định brew install openmpi sử dụng clang để tạo trình bao bọc của nó.Làm thế nào để xây dựng openmpi với homebrew và gcc-4.9?

Tôi cần chỉ định gcc-4.9 (cài đặt Homebrew) cho trình bao bọc.

Tôi đã thử

$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 

Cuối cùng, tôi đã sửa đổi openmpi thức thêm:

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

tôi vẫn nhận được

$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

Tại sao bạn không tự cài đặt mã nguồn từ chính mình? –

+0

Tôi muốn tìm hiểu cách thiết lập trình biên dịch cho các gói khác quá – ilciavo

+0

Tôi đoán là những gì bạn đã làm để sửa đổi công thức homebrew là đúng và bạn chỉ nhìn thấy kết quả của một cài đặt cũ. Ít nhất thì có vẻ ổn với tôi. –

Trả lời

7

Cuối cùng nó đã được giải quyết như sau:

1) Thêm các biến môi trường cho homebrew (bạn cũng có thể thêm những dòng này để ~\.bashrc của bạn):

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

2) Rebuild và cài đặt lại openmpi và phụ thuộc của nó từ nguồn

brew reinstall openmpi --build-from-source 

3) Cuối cùng bạn sẽ nhận được một thông báo như:

==> 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 

Trên MacBook của tôi Tôi đã có một số xung đột với XCode 6.2, được giải quyết sau this instructions

Tuy nhiên, tôi quyết định ở lại với phiên bản clang để tránh sự cố với gfortran.

+0

Tại sao bạn quyết định ở lại với tiếng kêu để tránh các vấn đề với gfortran? Tôi không nhận được tuyên bố này. – Chiel

+0

@Chiel Tôi từng gặp vấn đề khi xây dựng với 'openmpi' và' gfortran', do đó xây dựng 'openmpi' với' clang' bị ức chế 'gfortran' – ilciavo

+0

Làm việc hoàn hảo cho tôi, mà không có bất kỳ vấn đề gì! Và ứng dụng MPI của chúng tôi chạy một * lot * nhanh hơn (~ 30%) khi sử dụng openMPI được biên dịch với GCC thay vì openMPI bằng tiếng kêu. – Bart

Các vấn đề liên quan