J'essaie de construire boost 1.63 avec les derniers msvc 14.1 et VS2017 RC. Donc, j'ai fait tout ce que je fais normalement, j'ai ouvert le Cmd de développement, puis j'ai lancé le fichier bootstrap.bat et la commande
b2 -link=static -threading=multi
Pour une raison quelconque, j'ai eu ces erreurs:
E:/Coding/SDKs/boost_1_63_0/tools/build/src/tools\msvc.jam:834: in generate-setup-cmd
*** argument error
* rule maybe-rewrite-setup ( toolset : setup-script : setup-options : version : rewrite-setup ? )
* called with: ( msvc : : : default : )
* missing argument setup-script
E:/Coding/SDKs/boost_1_63_0/tools/build/src/tools\msvc.jam:746:see definition of rule 'maybe-rewrite-setup' being called
E:/Coding/SDKs/boost_1_63_0/tools/build/src/tools\msvc.jam:1076: in configure-really
E:/Coding/SDKs/boost_1_63_0/tools/build/src/tools\msvc.jam:201: in configure
E:/Coding/SDKs/boost_1_63_0/tools/build/src/tools\msvc.jam:153: in msvc.init
E:/Coding/SDKs/boost_1_63_0/tools/build/src/build\toolset.jam:43: in toolset.using
E:/Coding/SDKs/boost_1_63_0/tools/build/src/build\project.jam:1052: in using
project-config.jam:3: in modules.load
E:/Coding/SDKs/boost_1_63_0/tools/build/src\build-system.jam:249: in load-config
E:/Coding/SDKs/boost_1_63_0/tools/build/src\build-system.jam:412: in load-configuration-files
E:/Coding/SDKs/boost_1_63_0/tools/build/src\build-system.jam:524: in load
E:\Coding\SDKs\boost_1_63_0\tools\build\src/kernel\modules.jam:295: in import
E:\Coding\SDKs\boost_1_63_0\tools\build\src/kernel/bootstrap.jam:139: in boost-build
E:\Coding\SDKs\boost_1_63_0\boost-build.jam:17: in module scope
Je ne suis pas familier avec boost alors peut-être que l'un de vous pourrait me donner un indice
Basé sur KindDragons et CPlusPlus OOA et D, j'ai compilé Boost 1.63. Pour 64bit. Exécutez l'invite de commande "Outils natifs x64 pour VS 2017".
1) Run: bootstrap.bat
2) ouvrir project-config.jam
. Voici le mien:
import option ;
using msvc : 14.0 : "c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64\cl.exe";
option.set keep-going : false ;
La partie: 14.10.25017 continue à changer avec les mises à jour de votre SDK Windows. Donc, mettez-le à jour en conséquence.
3) Run b2 toolset=msvc-14.0 address-model=64
Boost 1.63 ne prend pas complètement en charge VS2017, mais vous pouvez le piéger pour trouver le compilateur VC++ 2017:
bootstrap.bat
Dans le répertoire boostusing msvc : 14.0 : <path to x86 or x64 cl.exe>
. Devrait être quelque chose comme "c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.24911\bin\HostX64\x64\cl.exe"
b2 toolset=msvc-14.0
Dans cette invite de commande. Pour la construction x64, ajoutez address-model=64
À la ligne de commande b2.UPDATE: Boost 1.64 devrait supporter VS2017
Exécutez "Invite de commandes x86 Native Tools pour VS 2017" ou "Invite de commande x64 Native Tools pour VS 2017" à partir du menu Démarrer, à partir de l'invite de commande interne exécutée b2
:
32 bits: b2 toolset=msvc-14.1 --build-dir=.x86 --stagedir=stage_x86
64 bits: b2 toolset=msvc-14.1 address-model=64 --build-dir=.x64 --stagedir=stage_x64
Ajoutez link=shared
Pour construire des bibliothèques partagées
J'ai créé un script batch qui génère des fichiers binaires 32 et 64 bits dans le référentiel github suivant: https://github.com/manuelgustavo/boost_build
Le secret réside dans l'utilisation de l'invite de commande du développeur de Visual Studio 2017. Il définit toutes les variables d'environnement selon les besoins.
Ensuite, vous pouvez exécuter quelque chose comme:
pour 32 bits:
b2.exe --toolset = msvc-14.0 architecture = modèle-adresse x86 = 32 --stagedir = ".\stage32" threading = multi -build-type = étape complète
et pour le 64 bits:
b2.exe --toolset = msvc-14.0 architecture = modèle-adresse x86 = 64 --stagedir = ".\stage64" threading = type-de-construction-multiple = étape complète
Ou si vous préférez, allez simplement à https://github.com/manuelgustavo/boost_build et suivez les étapes à partir de là.
Un autre conseil pour la construction avec Visual Studio 2017, qui a fonctionné dans mon cas. Si vous avez déjà construit Boost avec une version antérieure de Visual Studio, supprimez les fichiers de commandes temporaires générés par Boost bootstrap) situé dans le dossier TEMP de votre utilisateur, par exemple:
C:\Users\MYUSER~1\AppData\Local\Temp\b2_msvc_14.1_vcvarsx86_AMD64_.cmd
La solution provient de ce fil de discussion: http://boost.2283326.n4.nabble.com/Building-boost-fails-with-VS2017-v15-5-2-td4700909.html