web-dev-qa-db-fra.com

Comment créer Boost 1.55 avec MinGW?

J'ai téléchargé Boost 1.55 et MinGW.

La console me répond que je n'ai aucune commande. Je ne peux pas comprendre comment lier deux chemins et activer le compilateur GCC.

P.S .: Si je crée un boost avec le compilateur de Microsoft, j'aurai environ 8 erreurs avec l'erreur 3861 !!

Comment puis-je le construire?

21
Warezovvv

Assurez-vous d'abord que le répertoire bin de votre mingw est dans votre environnement PATH donc gcc et g++ peut être appelé à partir de votre invite de commande. Ensuite, allez dans le répertoire racine de votre boost d'où vous avez extrait les fichiers.

Suivez cela avec un bootstrap + b2.exe à construire. Par exemple, disons que vous ne voulez compiler que la partie regex de boost. Les commandes suivantes devraient faire l'affaire:

bootstrap gcc
b2 toolset=gcc regex

Vous pouvez utiliser:

b2 --show-libraries

pour obtenir une liste des modules que vous pouvez créer individuellement. Bien sûr, vous pouvez tous les construire avec juste:

b2 toolset=gcc

Consultez Boost Invocation pour une liste détaillée des options disponibles.

38
greatwolf

La réponse de Greatwolf n'a pas fonctionné pour moi, alors voici comment j'ai réussi à le faire fonctionner.

Tout d'abord, assurez-vous que MinGW\bin est sur votre chemin

Allez dans le tools\build\v2 répertoire de votre dossier boost. Par exemple, dans mon cas, c'était C:\Boost\boost_1_55_0\tools\build\v2. Exécutez ensuite

bootstrap mingw

Après cela, passez au répertoire racine Boost (cette partie est importante car b2 détecte ce qu'il faut construire en fonction du répertoire actuel)

Maintenant, si vous voulez construire un système de fichiers, faites

tools\build\v2\b2 toolset=gcc --build-type=complete stage --with-filesystem

Cela mettra libboost_filesystem-mgw48-d-1_55.dll etc. dans stage\lib. Si vous voulez tout construire, laissez simplement le --with-filesystem partie.

20
Antimony

Si vous avez installé MinGW/GCC dans le cadre de TDM-GCC , vous aurez une "invite de commande MinGW" que vous pourrez lancer. Cela charge une fenêtre d'invite de commandes et place le compilateur GCC sur le CHEMIN pour cette fenêtre. (Similaire à l '"invite de commande du développeur" installée avec Visual Studio.)

Je pense que la "distribution MinGW" est livré avec un aussi.

Si vous avez une invite de commande intégrée, vous pouvez simplement:

  • Lancez "Invite de commandes MinGW"
  • Accédez à votre dossier Boost (par exemple C:/Boost)
  • Courir bootstrap gcc
  • Courir b2 toolset=gcc (ou peu importe b2 commande dont vous avez besoin)

Si vous travaillez à partir d'exemples où quelqu'un ne définit pas explicitement le jeu d'outils, vous devrez ajouter toolset=gcc toi même. Notez que toolset doit être placé dans la propriété et non dans l'option ou position de la commande . De b2 --help:

b2 [options] [properties] [install|stage]

Donc, si quelqu'un écrivait la commande pour appeler la commande install avec la --prefix option, ils l'écriraient ainsi:

b2 --prefix=C:\boost-build install

Et vous le réécrivez comme:

b2 --prefix=C:\boost-build toolset=gcc install

Voir b2 --help pour plus de détails.

4
david.libremone

J'ai pu le construire en suivant les instructions d'Antimony. Cependant, j'ai d'abord eu cette erreur:

Bootstrapping the build engine
\Windows was unexpected at this time.

L'erreur a été résolue en effaçant la variable PATH et en y plaçant uniquement le dossier MinGW:

set PATH=C:\MinGW\bin

Ensuite, les instructions d'Antimony ont fait le travail pour moi. Merci!!

Juste deux autres petites choses qui pourraient être utiles. BOOST pour MinGW doit être construit à partir du shell Windows, et non à partir du shell MSYS. Et dans la version 1.57, le script bootstrap.bat n'est plus dans tools\build\v2, mais directement dans tools\build.

4
Miguel Muñoz