64-Bit-Version von Boost für 64-Bit-Fenster

119

Gibt es eine Version der 64-Bit-Boost-Bibliothek für VS2008? Oder muss ich selbst eine zusammenstellen? Wenn ja, hat jemand Erfahrung damit?

ra170
quelle

Antworten:

226

Als kurze Antwort:

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

Als längere Antwort sind hier meine Build-Hinweise für die 32-Bit- und 64-Bit-Boost-Bibliotheken von VS .NET 2008 in derselben Hierarchie (was vermutlich ein häufiger Anwendungsfall ist):

  1. Erstellen Sie die Win32-Binärdateien

    bjam --toolset=msvc-9.0 --build-type=complete stage
  2. Erstellen Sie das Verzeichnis lib \ win32

  3. Verschieben Sie den Inhalt von stage \ lib nach lib \ win32
  4. Entfernen Sie die Verzeichnisse bin.v2 und stage
  5. Erstellen Sie die x64-Binärdateien

    bjam --toolset=msvc-9.0 address-model=64 --build-type=complete stage
  6. Erstellen Sie das Verzeichnis lib \ x64

  7. Verschieben Sie den Inhalt von stage \ lib nach lib \ x64
  8. Entfernen Sie die Verzeichnisse bin.v2 und stage
Adrian Conlon
quelle
25
Sie können auch das Stage-Verzeichnis angeben, sodass die resultierenden Bibliotheken nicht mehr kopiert werden müssen: bjam --toolset = msvc-9.0 address-model = 64 --build-type = complete --stagedir = lib \ x64 stage
hkaiser
8
Was ist Bühne ?
Ramadheer Singh
16
Leider funktioniert Adressmodell = 64 nicht, um 64 zu erstellen. Ihr Pfad muss auf Visual Studio \ bin \ amd64 \ cl.exe verweisen. Andernfalls wird eine 32-Bit-Version erstellt. Dazu können Sie die Microsoft SDK-Eingabeaufforderung starten und "setenv / Release / x64" verwenden, wodurch alle Pfade neu definiert werden.
Budric
2
@Budric, bist du sicher? Es scheint für mich funktioniert zu haben und dies besagt ausdrücklich, einen Pfad zum 32-Bit-Compiler bereitzustellen, selbst wenn 64-Bit eingebaut wird.
Maciej Gryka
4
Wenn Sie sowohl eine 32- als auch eine 64-Bit-Version erstellen müssen, können Sie auch den Parameter stagedir verwenden: "bjam --stagedir =. / Lib_64bit address-model = 64 toolset = msvc threading = multi" und "bjam --stagedir =". / lib toolset = msvc threading = multi "
Odin
63

Ich habe die erstellten Binärdateien auf meiner Website: http://boost.teeks99.com

Bearbeiten 2013-05-13: Meine Builds sind jetzt (ab 1.53) direkt auf der SourceForge-Seite verfügbar .

teeks99
quelle
5
Schön, dass Sie dies bereitstellen, da BoostPRo (das Binärdateien für Boost-Bibliotheken bereitstellt) keine x64-Versionen bereitstellt. Vielen Dank!
CharlesB
Gibt es eine Chance, VS2015 (VC ++ 14) -Binärdateien zu veröffentlichen? Das wäre sehr dankbar.
Russell Greene
1
Die Binärdateien von msvc-14.0 werden in einigen Wochen in der Version 1.59 veröffentlicht.
teeks99
22

UPDATE (19.09.2017): Skriptzeilen für VS2017 hinzugefügt. Bitte beachten Sie, dass Boost den VS2017-Compiler ab einer bestimmten Version oben unterstützt. Ich habe die neueste Version (1.65.1) verwendet.

Ich habe diese Skripte verwendet, um Boost für x64- und x86-Plattformen, lib und dll, Debugging und Release für VS2017, VS2015 und VS2013 zu erstellen:

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

Sie können eine .batDatei erstellen und ausführen, um Ihre Boost-Binärdateien zu erstellen.

mtb
quelle
12

In diesem Moment scheinen die von teeks99 bereitgestellten 64-Bit-Binärdateien (siehe andere Antwort) die einzigen freien 64-Bit-Binärdateien zu sein. Für eine Weile stellte BoostPro auch 64-Bit-Binärdateien zur Verfügung, aber ab 1.51 scheinen sie nicht mehr in Betrieb zu sein.

Da sind wir also wieder bei zwei Optionen: den teeks99-Binärdateien oder dem Erstellen eigener.

Die meisten Informationen, die ich zum Erstellen meiner eigenen Informationen benötigte, waren hier: https://stackoverflow.com/a/2655683/613288

Das einzige, was fehlte, war, wie dies mit der kostenlosen Version von Visual Studio 2010 Express funktioniert. Ich fand das fehlende Teil woanders und nach einigen Anpassungen war das endgültige Rezept, das ich für meinen Build der Boost 1.49.0-Binärdateien verwendet habe:

Starten Sie Visual C ++ und starten Sie über das Menü Extras die Eingabeaufforderung von Visual Studio.

Gehen Sie im Konsolenfenster wie folgt vor:

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

und dann im Boost-Verzeichnis:

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

Der letzte Befehl ist an das angepasst, was ich gerade brauchte (nur einige statisch verknüpfte Bibliotheken).

Ökotax
quelle
Ich habe das x64 1_51-Installationsprogramm heruntergeladen, es enthält jedoch ein beschädigtes Archiv für die Systembibliothek und es scheint, dass einige andere Bibliotheken dort x86 sind (ich erhalte Linker-Warnungen). Nach dem Wechsel zu den Bibliotheken von teeks99 wurde alles in Ordnung.
Alex
4

Ich habe mir ein kleines Skript gemacht, das sie alle für VS2005 und VS2008 kompiliert:

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
quelle