2012-02-19 57 views
1

我完成了安裝boost mpi,並將openmpi作爲底層實現,並嘗試編譯一個簡單的程序進行測試。什麼架構在OSX中使用?

我編譯我的提振MPI庫如下:

./bjam toolset=darwin architecture=x86 address-model=32 install 

我編譯MPI程序有以下幾點:

mpic++ -I/opt/boost_1_46_1/include mpi_play.cpp -L/opt/boost_1_46_1/lib -lboost_mpi -lboost_serialization 

但它說

ld: warning: in /opt/boost_1_46_1/lib/libboost_mpi.dylib, file was built for i386 which is not the architecture being linked (x86_64) 

我知道那的bjam我使用的命令是在i386中建立圖書館。這是我在XCode中使用boost線程庫所需要做的。所以,現在我不確定什麼是使所有這些boost庫和mpi庫在mac中工作的最佳方法。

+0

代碼應該工作正常(至少它對我來說)是你使用10.7還是10.6?我唯一一次遇到這個問題是當我在OS 10.6上強制使用64位,但我還沒有嘗試過10.7,所以我不確定。 – 2012-02-19 22:53:01

回答

0

如果您希望i386構建,請將-arch i386傳遞給mpiC++,它應該將它傳遞給底層編譯器。

0

通過address-model=64到bjam命令行來創建一個x86_64 MPI庫,您可以鏈接到您的代碼。或者將您的代碼編譯爲x86(-arch i386)以使用您之前編譯的已經是x86的MPI庫。