2012-02-19 4 views
1

openmpi를 기본 구현으로하여 부스트 mpi를 설치하고 테스트 할 간단한 프로그램을 컴파일하려고했습니다. 나는 다음 내 MPI 프로그램을 컴파일OSX에서 사용할 아키텍처는 무엇입니까?

./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에서 부스트 스레드 라이브러리를 사용하기 위해해야 ​​할 일이다. 그래서 지금은 이러한 모든 부스트 라이브러리와 mpi 라이브러리를 Mac에서 작동시키는 최선의 방법이 무엇인지 잘 모릅니다.

+0

코드가 잘 작동해야합니다 (적어도 나를 위해) 10.7 또는 10.6을 사용하고 있습니까? 문제가 발생하는 유일한 이유는 OS 10.6에서 64 비트를 강제 실행하지만 10.7을 아직 시도하지 않았기 때문에 확실하지 않습니다. –

답변

0

i386 빌드를 원할 경우 -arch i386을 mpiC++에 전달하십시오.이 컴파일러는 기본 컴파일러에 전달해야합니다.

0

address-model=64을 bjam 명령 줄에 전달하면 코드에 연결할 수있는 x86_64 MPI 라이브러리를 만들 수 있습니다. 또는 코드를 x86 (-arch i386)으로 컴파일하여 이전에 컴파일 한 x86 MPI 라이브러리를 사용할 수 있습니다.

관련 문제