2009-12-02 4 views
0

J'essaye de construire des binaires universels MacOSX (j'ai besoin d'au moins i386/ppc pour> = macosx10.3) de Boost.Boost: comment construire Boost sous MacOSX

J'ai essayé beaucoup de différentes méthodes et options et versions et tout échoue à la fin de cet accident:

Boost: what could be the reasons for a crash in boost::slot<>::~slot?

Je suppose que cet accident est dû à une mauvaise construction Boost.

Avec Boost-1.41.0, je pense que les options les plus correctes, j'ai essayé étaient ceci:

./bootstrap.sh && sudo ./bjam architecture=combined macosx-version=10.4 install 
+1

Pourquoi dites-vous que vous avez besoin de> = osx10.3, puis définissez macosx-version = 10.4? –

+0

J'ai reçu cette commande d'un site Web. En outre je construis une autre application avec le SDK 1.4 mais l'option de compatibilité pour 10.3 et cela semble fonctionner, ainsi j'ai juste utilisé la commande car elle était écrite sur ce site. Mais ce serait bien si cela fonctionnait du tout, alors je peux essayer plus tard pour 10.3 si ça ne marche pas là. – Albert

+0

Je ne sais pas exactement ce que bjams 'macosx-version' fait, mais les cibles mixtes pourraient juste être la source de votre problème. –

Répondre

0

Il était déjà la bonne commande. J'ai découvert le problème avec mon crash:

Vous devez utiliser exactement les mêmes définitions de préprocesseur STL lorsque vous avez compilé Boost dans votre projet. C'est à dire. vous ne pouvez pas activer _GLIBCXX_DEBUG ou _GLIBCXX_DEBUG_PEDANTIC dans votre projet lorsque Boost a été compilé sans ceux-ci.

+0

Ces deux définitions supplémentaires sont-elles ajoutées par vous-même? Ou sont-ils utilisés par défaut dans XCode pour les versions de débogage? Dans ce dernier cas, nous pourrions changer Boost pour les utiliser par défaut, aussi - si vous pointez sur une documentation pertinente indiquant qu'ils sont définis. –

+0

Ils sont utilisés par défaut dans la version Debug mais pas dans la version Release. En outre, cela peut dépendre de la version de Xcode et du modèle de projet que vous utilisez. Donc, vous ne pouvez pas vraiment compter sur cela. – Albert

0

Juste installé de macports et j'espère que ceci est assez bon pour vous. Commande ci-dessous:

sudo port install boost +universal 
Questions connexes