Version 64 bits de Boost pour Windows 64 bits

119

Existe-t-il une version de la bibliothèque Boost 64 bits pour VS2008? Ou dois-je en compiler un moi-même? si oui, quelqu'un en a-t-il l'expérience?

ra170
la source

Réponses:

226

En guise de réponse courte:

bjam --toolset=msvc-9.0 address-model=64 --build-type=complete

En guise de réponse plus longue, voici mes notes de compilation pour avoir des bibliothèques de boost VS .NET 2008 32 bits et 64 bits dans la même hiérarchie (ce qui est, je soupçonne un cas d'utilisation courant):

  1. Construire les binaires win32

    bjam --toolset=msvc-9.0 --build-type=complete stage
  2. Créez le répertoire lib \ win32

  3. Déplacez le contenu de stage \ lib vers lib \ win32
  4. Supprimez les répertoires bin.v2 et stage
  5. Construire les binaires x64

    bjam --toolset=msvc-9.0 address-model=64 --build-type=complete stage
  6. Créez le répertoire lib \ x64

  7. Déplacez le contenu de stage \ lib vers lib \ x64
  8. Supprimez les répertoires bin.v2 et stage
Adrian Conlon
la source
25
Vous pouvez également spécifier le répertoire stage, ce qui évite d'avoir à copier les bibliothèques résultantes autour de: bjam --toolset = msvc-9.0 address-model = 64 --build-type = complete --stagedir = lib \ x64 stage
hkaiser
8
qu'est-ce que la scène ?
Ramadheer Singh
16
Malheureusement, pour construire 64, address-model = 64 ne fonctionne pas. Votre chemin doit pointer vers Visual Studio \ bin \ amd64 \ cl.exe. Sinon, il construit la version 32 bits. Pour ce faire, vous pouvez démarrer l'invite de commande Microsoft SDK et utiliser "setenv / Release / x64" qui redéfinit tous les chemins.
Budric
2
@Budric, êtes-vous sûr? Cela semble avoir fonctionné pour moi et cela stipule explicitement de fournir un chemin vers le compilateur 32 bits même lors de la construction en 64 bits.
Maciej Gryka
4
Si vous avez besoin de construire à la fois les versions 32 et 64 bits, il est également possible d'utiliser le paramètre stagedir: "bjam --stagedir =. / Lib_64bit address-model = 64 toolset = msvc threading = multi" et "bjam --stagedir =. / lib toolset = msvc threading = multi "
Odin
63

J'ai les binaires construits sur mon site: http://boost.teeks99.com

Edit 2013-05-13: Mes builds sont désormais disponibles (à partir de 1.53) directement depuis la page sourceforge .

teeks99
la source
5
C'est bien que vous fournissiez cela, car BoostPRo (qui fournit des binaires pour les bibliothèques Boost) ne donne pas de versions x64. Merci!
CharlesB
Avez-vous une chance de publier des binaires VS2015 (VC ++ 14)? Ce serait grandement apprécié.
Russell Greene
1
Les binaires msvc-14.0 seront disponibles dans la version 1.59 dans quelques semaines.
teeks99
22

UPDATE (19.09.2017): ajout de lignes de script pour VS2017. Veuillez noter que Boost prend en charge le compilateur VS2017 à partir d'une certaine version ci-dessus. J'ai utilisé la dernière version (1.65.1).

J'ai utilisé ces scripts pour créer un boost pour les plates-formes x64 et x86, lib et dll, déboguer et publier pour VS2017, VS2015 et VS2013:

md stage\VS2017\x64
md stage\VS2015\x64
md stage\VS2013\x64    

b2 --stagedir=./stage/VS2017/x64 address-model=64 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2017/x64 address-model=64 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=release  

b2 --stagedir=./stage/VS2015/x64 address-model=64 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2015/x64 address-model=64 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=release

b2 --stagedir=./stage/VS2013/x64 address-model=64 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2013/x64 address-model=64 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=release


md stage\VS2017\win32
md stage\VS2015\win32
md stage\VS2013\win32

b2 --stagedir=./stage/VS2017/win32 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2017/win32 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=release

b2 --stagedir=./stage/VS2015/win32 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2015/win32 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=release

b2 --stagedir=./stage/VS2013/win32 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2013/win32 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=release

pause

Vous pouvez créer un .batfichier et l'exécuter pour créer vos binaires boost.

vtt
la source
12

En ce moment, les binaires 64 bits fournis par teeks99 (voir autre réponse) semblent être les seuls binaires 64 bits libres disponibles. Pendant un certain temps, BoostPro a également fourni des binaires 64 bits, mais à partir de la version 1.51, ils semblent être hors service.

Donc, nous revenons à deux options: les binaires teeks99 ou la création de la vôtre.

La plupart des informations dont j'avais besoin pour créer la mienne se trouvaient ici: https://stackoverflow.com/a/2655683/613288

La seule chose qui manquait était de savoir comment faire fonctionner cela avec la version gratuite de Visual Studio 2010 Express. J'ai trouvé cette partie manquante ailleurs, et après une certaine personnalisation, la recette finale que j'ai utilisée pour ma construction des binaires boost 1.49.0 était:

Démarrez Visual C ++ et à partir du menu Outils, démarrez l'invite de commandes Visual Studio.

Dans la fenêtre de la console, procédez comme suit:

"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\setenv.cmd"  /Release  /x64

puis dans le répertoire boost:

bootstrap.bat
b2  -a  -sBZIP2_SOURCE="C:\bzip2-1.0.6"   -sZLIB_SOURCE="C:\zlib-1.2.5"   --toolset=msvc-10.0  architecture=x86  address-model=64  link=static  --with-date_time  --with-filesystem  --with-serialization  --with-test  --with-thread  --with-system  --with-regex  --with-iostreams  stage

La dernière commande est personnalisée pour ce dont j'ai eu besoin (juste quelques bibliothèques liées statiquement).

écotaxe
la source
J'ai téléchargé leur programme d'installation x64 1_51, cependant, il contient une archive endommagée pour la bibliothèque système et il semble que certaines autres bibliothèques soient x86 (j'obtiens des avertissements de l'éditeur de liens). Après être passé aux bibliothèques de teeks99, tout est devenu OK.
Alex
4

J'ai fait moi un petit script qui les compile tous pour VS2005 et VS2008:

md stage\lib\win32
md stage\lib\x64

REM Visual Studio 2005
bjam --toolset=msvc-8.0 --build-type=complete stage
move /Y stage\lib\* stage\lib\win32\

bjam --toolset=msvc-8.0 address-model=64 --build-type=complete stage
move /Y stage\lib\* stage\lib\x64\

REM Visual Studio 2008
bjam --toolset=msvc-9.0 --build-type=complete stage
move /Y stage\lib\* stage\lib\win32\

bjam --toolset=msvc-9.0 address-model=64 --build-type=complete stage
move /Y stage\lib\* stage\lib\x64\
Harald Krause
la source