J'utilise Windows 10 et j'ai Visual Studio 2017 Community Edition installé sur mon ordinateur portable. J'ai des programmes plus anciens qui se sont bien compilés dans VS 2015 avec Boost 1.62.0 en 64 bits. Pour une raison très étrange, je ne peux pas trouver de moyen de compiler, disons, n'importe quelle bibliothèque de Boost 1.64.0 (ici le système de fichiers et le minuteur) en utilisant VS 2017 avec cette ligne de commande:
b2 --build-dir = ..\build_here --with-filesystem --with-timer --address-model = 64
La commande s'exécutera et les bibliothèques seront construites, mais en 32 bits !!
Qu'est-ce qui pourrait mal tourner?
Cordialement, Juan Dent
Pour mettre à jour la réponse que j'ai donnée ici . Visual Studio 2017
est un nouvel ensemble d'outils, remplacez simplement toolset=msvc-14.0
(pour Visual Studio 2015
) avec toolset=msvc-14.1
c'est à dire.:
Dans une invite de commande des outils Visual Studio:
cd boost_1_64_0
call bootstrap.bat
Pour les bibliothèques statiques (recommandées pour Windows):
b2 -j8 toolset=msvc-14.1 address-model=64 architecture=x86 link=static threading=multi runtime-link=shared --build-type=complete stage
Remarque: le fil doit être construit avec une liaison dynamique voir: https://studiofreya.com/2015/05/20/the-simplest-way-of-building-boost-1-58-for-32-bit -et-64-bit-architectures-with-visual-studio /
Pour créer un thread dans une bibliothèque dynamique:
b2 -j8 toolset=msvc-14.1 address-model=64 architecture=x86 link=shared threading=multi runtime-link=shared --with-thread --build-type=minimal stage
Remarque: le bon
b2
jeu d'outils pourVisual Studio 2017
estmsvc-14.1
pasmsvc-15.0
et
lesb2
jeu d'outils pourVisual Studio 2019
estmsvc-14.2
.
En cas de doute (et si vous n'avez qu'une seule version de Visual Studio installée), utilisez simplementtoolset=msvc
.
Je ne sais pas pourquoi, mais le Boost est compilé en 32 bits avec l'invite x64 native de VS 2017.
Cette étape par étape a fonctionné pour moi:
Modification du boost_1_66_0\project-config.jam en:
import option ; //Check your compiler path here: using msvc : 14.1 : "C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.12.25827/bin/Hostx64/x64/cl.exe"; using mpi ; option.set keep-going : false ;
Courir:
b2.exe --toolset=msvc-14.1 --address-model=64 --architecture=x86 --runtime-link=static,shared --link=static threading=multi --build-dir=build\x64 install --prefix="C:\Program Files\Boost" -j4
ou
bjam.exe toolset=msvc-14.1 address-model=64 architecture=x86 runtime-link=static,shared link=static threading=multi build-dir=build\x64 install prefix="C:\Program Files\Boost" -j4
Vous devriez avoir un 64 bits = oui au début de la compilation.