2009-08-31 9 views
19

Comment forcer une version 32 bits de Boost avec GCC? tente actuellement en mettant cette ligne dans mon user-config.jam, mais il ne fonctionne pas:Comment forcer une version 32 bits de Boost avec GCC?

using gcc : 4.1.2 : g++ : compileflags="-m32" ; 
+0

Pour construire à l'aide bjam, je pense que vous feriez ceci: bjam Adresse modèle = 32 architecture = x86 –

+0

Est-ce sur un système Linux ...? Je triche généralement en utilisant 'setarch i686 make' ou similaire. Je ne sais pas si cela fonctionnerait pour Boost, en particulier, cependant. (Et, dans ce cas, vous pouvez simplement télécharger le binaire 32 bits pour votre système d'exploitation, donc je suppose que vous êtes sur un autre système.) – BRFennPocock

Répondre

25

Si vous utilisez C++ Boost 1.40, utilisez:

bjam address-model=32 

Si vous utilisez la version eariler, envisagez la mise à niveau. Si vous ne pouvez pas, utilisez

bjam address-model=32 architecture=x86 

Je recommande également que vous jetez un oeil à la fine manual

+11

Oh ouais ... ce «bon manuel» est génial. J'aime tous les exemples qu'ils fournissent. (Sarcasme) –

+1

Les correctifs sont les bienvenus. Cependant, je ne suis pas vraiment sûr que l'ajout explicite d'une commande complète comme exemple pour chaque propriété listée à l'URL ci-dessus fera beaucoup autre chose que gonfler la taille des docs. –

+2

Notez que si vous avez une version 64 bits de 'gcc', vous devriez jeter un oeil à la réponse de @AndrewMeadows. – ereOn

18

Cette réponse m'a aidé à trouver une solution qui a fonctionné pour moi. J'ai essayé de compiler une debian version 32 bits d'boost_1_43_0 sur 64 bits et, finalement, est venu avec ceci:

./bjam     \ 
    cflags=-m32   \ 
    cxxflags=-m32  \ 
    address-model=32  \ 
    threading=multi  \ 
    architecture=x86  \ 
    instruction-set=i686 \ 
    stage 
+1

En outre, si vous voulez changer le compilateur, vous pouvez spécifier votre version du compilateur via le répertoire 'project-config.jam' du répertoire boost ou 'user-config.jam' en vous assurant que 'using gcc:: g ++ - 4.4; 'est utilisé (spécifié 4.4 pour la compilation de Boost avec des fichiers Matlab MEX (32 bits) sur Linux 64 bits). – eacousineau

+0

Merci Andrew, réponse très utile! –

Questions connexes