web-dev-qa-db-fra.com

Comment construire Boost 1.64 en 64 bits?

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

10
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 pour Visual Studio 2017 est msvc-14.1 pas msvc-15.0 et
les b2 jeu d'outils pour Visual Studio 2019 est msvc-14.2.
En cas de doute (et si vous n'avez qu'une seule version de Visual Studio installée), utilisez simplement toolset=msvc.

14
kenba

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:

  1. Ouvrez l'invite de commande des outils natifs x64 pour VS 2017;
  2. 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 ;

  3. 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.

2
Geucimar