2012-02-19 4 views
1

J'ai fini d'installer boost mpi, avec openmpi comme implémentation sous-jacente, et d'essayer de compiler un programme simple à tester.Quelle architecture utiliser sous OSX?

compiler mon boost bibliothèque mpi comme suit:

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

Je compilé mon programme mpi avec ce qui suit:

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

Mais il dit

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) 

Je savais que le bjam commande que j'ai utilisé était pour la construction de la bibliothèque en i386. C'est ce que je dois faire pour utiliser la bibliothèque de thread boost dans XCode. Donc, maintenant je ne sais pas quelle est la meilleure approche pour faire fonctionner toutes ces bibliothèques boost et mpi en mac.

+0

Le code devrait fonctionner correctement (au moins pour moi) utilisez-vous 10.7 ou 10.6? La seule fois où je reçois le problème est quand je force 64 bits sur OS 10.6 mais je n'ai pas encore essayé 10.7 alors je ne suis pas sûr. –

Répondre

0

Si vous souhaitez des versions i386, transmettez -arch i386 à mpiC++, qui doit le transmettre au compilateur sous-jacent.

0

Passez la ligne de commande bjam address-model=64 pour créer une bibliothèque MPI x86_64 que vous pouvez lier avec votre code. Ou compilez votre code en tant que x86 (-arch i386) pour utiliser la bibliothèque MPI déjà x86 précédemment compilée.

Questions connexes