Was ist eine gute Schritt-für-Schritt-Erklärung, wie Sie die Boost-Bibliothek in einem leeren Projekt in Visual Studio verwenden?
Antworten
Zu viele Anzeigen?Während Nate's Antwort ist bereits ziemlich gut, ich werde es speziell für Visual Studio 2010 erweitern, wie gewünscht, und Informationen zum Kompilieren in den verschiedenen optionalen Komponenten enthalten, die externe Bibliotheken erfordern.
Wenn Sie nur Header-Bibliotheken verwenden, müssen Sie lediglich den Boost-Download entpacken und die Umgebungsvariablen einrichten. Die folgende Anleitung setzt die Umgebungsvariablen nur für Visual Studio und nicht für das gesamte System. Beachten Sie, dass Sie dies nur einmal tun müssen.
- Entpacken Sie die neueste Version von boost (derzeit 1.47.0) in ein Verzeichnis Ihrer Wahl (z.B.
C:\boost_1_47_0
). - Erstellen Sie ein neues leeres Projekt in Visual Studio.
- Öffnen Sie den Property Manager und erweitern Sie eine der Konfigurationen für die Plattform Ihrer Wahl.
- Auswählen und rechtsklicken
Microsoft.Cpp.<Platform>.user
und wählen SieProperties
um die Eigenschaftsseite zur Bearbeitung zu öffnen. - Wählen Sie
VC++ Directories
auf der linken Seite. - Bearbeiten Sie die
Include Directories
Abschnitt den Pfad zu Ihren Boost-Quelldateien ein. - Wiederholen Sie die Schritte 3 - 6 für eine andere Plattform Ihrer Wahl, falls erforderlich.
Wenn Sie den Teil von boost verwenden wollen, der gebaut werden muss, aber keine der Funktionen, die externe Abhängigkeiten erfordern, dann ist das Bauen ziemlich einfach.
- Entpacken Sie die neueste Version von boost (derzeit 1.47.0) in ein Verzeichnis Ihrer Wahl (z.B.
C:\boost_1_47_0
). - Starten Sie die Visual Studio-Eingabeaufforderung für die Plattform Ihrer Wahl und navigieren Sie zu dem Ort, an dem sich boost befindet.
- Laufen:
bootstrap.bat
um b2.exe (früher bjam genannt) zu erstellen. -
Lauf b2:
- Win32:
b2 --toolset=msvc-10.0 --build-type=complete stage
; - x64:
b2 --toolset=msvc-10.0 --build-type=complete architecture=x86 address-model=64 stage
- Win32:
Spazieren gehen / einen oder 2 Filme ansehen / ....
- Führen Sie die Schritte 2 - 6 der obigen Anweisung aus, um die Umgebungsvariablen zu setzen.
- Bearbeiten Sie die
Library Directories
Abschnitt den Pfad zur Ausgabe Ihrer Boost-Bibliotheken ein. (Die Vorgabe für das Beispiel und die obigen Anweisungen wäreC:\boost_1_47_0\stage\lib
. Benennen Sie das Verzeichnis zuerst um und verschieben Sie es, wenn Sie x86 und x64 nebeneinander haben möchten (z. B. nach<BOOST_PATH>\lib\x86
&<BOOST_PATH>\lib\x64
). - Wiederholen Sie die Schritte 2 - 6 für eine andere Plattform Ihrer Wahl, falls erforderlich.
Wenn Sie die optionalen Komponenten wünschen, müssen Sie mehr Arbeit investieren. Diese sind:
- Boost.IOStreams Bzip2-Filter
- Boost.IOStreams Zlib-Filter
- Boost.MPI
- Boost.Python
- Boost.Regex ICU-Unterstützung
Boost.IOStreams Bzip2-Filter:
- Entpacken Sie die neueste Version der bzip2-Bibliothek (derzeit 1.0.6) in ein Verzeichnis Ihrer Wahl (z.B.
C:\bzip2-1.0.6
). - Befolgen Sie die zweite Reihe der obigen Anweisungen zur Erstellung von boost, fügen Sie jedoch die Option
-sBZIP2_SOURCE="C:\bzip2-1.0.6"
wenn Sie b2 in Schritt 5 ausführen.
Boost.IOStreams Zlib-Filter
- Entpacken Sie die neueste Version der zlib-Bibliothek (derzeit 1.2.5) in ein Verzeichnis Ihrer Wahl (z. B.
C:\zlib-1.2.5
). - Befolgen Sie die zweite Reihe der obigen Anweisungen zur Erstellung von boost, fügen Sie jedoch die Option
-sZLIB_SOURCE="C:\zlib-1.2.5"
wenn Sie b2 in Schritt 5 ausführen.
Boost.MPI
- Installieren Sie eine MPI-Distribution wie das Microsoft Compute Cluster Pack.
- Führen Sie die Schritte 1 - 3 der zweiten Anleitung oben aus, um den Boost aufzubauen.
- Bearbeiten Sie die Datei
project-config.jam
im Verzeichnis<BOOST_PATH>
die sich aus der Ausführung von Bootstrap ergeben. Fügen Sie eine Zeile ein, die lautetusing mpi ;
(beachten Sie das Leerzeichen vor dem ';'). - Befolgen Sie die restlichen Schritte der zweiten Anleitung oben, um den Boost zu bauen. Wenn die automatische Erkennung der MPI-Installation fehlschlägt, müssen Sie die entsprechende Build-Datei suchen und ändern, um an der richtigen Stelle nach MPI zu suchen.
Boost.Python
-
Installieren Sie eine Python-Distribution wie ActiveState's ActivePython. Stellen Sie sicher, dass sich die Python-Installation in Ihrem PATH befindet.
-
Um die 32-Bit-Version der Bibliothek vollständig zu erstellen, ist 32-Bit-Python erforderlich, und das Gleiche gilt für die 64-Bit-Version. Wenn Sie aus diesem Grund mehrere Versionen installiert haben, müssen Sie b2 mitteilen, wo die jeweilige Version zu finden ist und wann welche Version zu verwenden ist. Eine Möglichkeit, das zu tun, wäre, die Datei
project-config.jam
im Verzeichnis<BOOST_PATH>
die sich aus der Ausführung von Bootstrap ergeben. Fügen Sie die folgenden zwei Zeilen ein und passen Sie sie an Ihre Python-Installationspfade und -versionen an (beachten Sie das Leerzeichen vor dem ';').using python : 2.6 : C:\\Python\\Python26\\python ;
using python : 2.6 : C:\\Python\\Python26-x64\\python : : : <address-model>64 ;
Beachten Sie, dass eine solche explizite Python-Spezifikation derzeit zu einem Fehlschlag bei der MPI-Erstellung führt. Sie müssen also einige separate Builds mit und ohne Spezifikation durchführen, um alles zu bauen, wenn Sie auch MPI bauen wollen.
-
Befolgen Sie die zweite Reihe von Anweisungen oben, um Boost zu bauen.
Boost.Regex ICU-Unterstützung
- Entpacken Sie die neueste Version der ICU4C-Bibliothek (derzeit 4.8) in ein Verzeichnis Ihrer Wahl (z. B.
C:\icu4c-4_8
). - Öffnen Sie die Visual Studio Solution in
<ICU_PATH>\source\allinone
. - Build All sowohl für Debug- als auch für Release-Konfiguration für die Plattform Ihrer Wahl. Es können sein ein Problem bei der Erstellung neuerer Versionen von ICU4C mit Visual Studio 2010, wenn sich die Ausgaben für Debug- und Release-Builds im selben Verzeichnis befinden (was das Standardverhalten ist). Ein möglicher Workaround ist ein Build All (von Debug-Build sagen) zu tun und dann ein Rebuild all in der zweiten Konfiguration (z. B. Release-Build) zu tun.
- Wenn Sie für x64 erstellen, müssen Sie ein x64-Betriebssystem verwenden, da nach der Erstellung einige der 64-Bit-Anwendungen ausgeführt werden müssen.
- Entfernen Sie optional das Quellverzeichnis, wenn Sie fertig sind.
- Befolgen Sie die zweite Reihe der obigen Anweisungen zur Erstellung von boost, fügen Sie jedoch die Option
-sICU_PATH="C:\icu4c-4_8"
wenn Sie b2 in Schritt 5 ausführen.
Während die Anweisungen auf der Boost-Website sind hilfreich, hier ist eine komprimierte Version, die auch x64-Bibliotheken baut.
- Sie müssen dies nur tun, wenn Sie eine der Bibliotheken verwenden, die in Abschnitt 3 der Anleitungsseite. (Z.B. erfordert die Verwendung von Boost.Filesystem eine Kompilierung.) Wenn Sie keine dieser Komponenten verwenden, entpacken Sie einfach und los geht's.
Erstellen Sie die 32-Bit-Bibliotheken
Dies installiert die Boost-Header-Dateien unter C:\Boost\include\boost-(version)
und die 32-Bit-Bibliotheken unter C:\Boost\lib\i386
. Beachten Sie, dass der Standardspeicherort für die Bibliotheken C:\Boost\lib
aber Sie sollten sie unter einer i386
Verzeichnis, wenn Sie planen, für mehrere Architekturen zu bauen.
-
Entpacken Sie Boost in ein neues Verzeichnis.
-
Starten Sie eine 32-Bit-MSVC-Eingabeaufforderung und wechseln Sie in das Verzeichnis, in das Boost entpackt wurde.
-
Laufen:
bootstrap
-
Laufen:
b2 toolset=msvc-12.0 --build-type=complete --libdir=C:\Boost\lib\i386 install
- Für Visual Studio 2012, verwenden Sie
toolset=msvc-11.0
- Für Visual Studio 2010, verwenden Sie
toolset=msvc-10.0
- Für Visual Studio 2017, verwenden Sie
toolset=msvc-14.1
- Für Visual Studio 2012, verwenden Sie
-
hinzufügen
C:\Boost\include\boost-(version)
zu Ihrem Include-Pfad hinzufügen. -
hinzufügen
C:\Boost\lib\i386
in den Pfad zu den Bibliotheken aufnehmen.
Erstellen Sie die 64-Bit-Bibliotheken
Dies installiert die Boost-Header-Dateien unter C:\Boost\include\boost-(version)
und die 64-Bit-Bibliotheken unter C:\Boost\lib\x64
. Beachten Sie, dass der Standardspeicherort für die Bibliotheken C:\Boost\lib
aber Sie sollten sie unter einer x64
Verzeichnis, wenn Sie planen, für mehrere Architekturen zu bauen.
- Entpacken Sie Boost in ein neues Verzeichnis.
- Starten Sie eine 64-Bit-MSVC-Eingabeaufforderung und wechseln Sie in das Verzeichnis, in das Boost entpackt wurde.
- Laufen:
bootstrap
- Laufen:
b2 toolset=msvc-12.0 --build-type=complete --libdir=C:\Boost\lib\x64 architecture=x86 address-model=64 install
- Für Visual Studio 2012, verwenden Sie
toolset=msvc-11.0
- Für Visual Studio 2010, verwenden Sie
toolset=msvc-10.0
- Für Visual Studio 2012, verwenden Sie
- hinzufügen
C:\Boost\include\boost-(version)
zu Ihrem Include-Pfad hinzufügen. - hinzufügen
C:\Boost\lib\x64
in den Pfad zu den Bibliotheken aufnehmen.
Dieser Thread ist schon eine Weile alt, und ich dachte, ich füge etwas darüber hinzu, WIE man Boost so schnell wie möglich auf der eigenen Hardware erstellt.
Wenn Sie einen 4 oder 6-Kern haben, verwenden Sie -j5 bzw. -j7. Auf keinen Fall den Standard-Build oder -j2, es sei denn, Sie haben tatsächlich einen Dual-Core.
Ich führe eine Sandy Bridge Extreme mit stock getaktet 3930K (6-Kern) auf meiner Hauptstation, sondern haben eine 2600k (4-Kern) auf älteren Backup-Box, und der Trend ist ich die besten Boost Kompilierzeiten mit N + 1 Build-Prozesse, wo N die Anzahl der physischen Kerne ist. N + 2 erreicht einen Punkt der abnehmenden Erträge und die Zeiten gehen nach oben.
Anmerkungen: Hyperthreading ist aktiviert, 32GB RAM DDR3, Samsung 840 EVO SSD.
-j7 auf 6-Core (2 Minuten und 51 Sekunden) (Win7 Ultimate x64)(Visual Studio 2013)
PS C:\Boost\boost_1_56_0> measure-command { .\b2 -j7 --build-type=complete msvc stage }
Days : 0
Hours : 0
Minutes : 2
Seconds : 51
Milliseconds : 128
Ticks : 1711281830
TotalDays : 0.0019806502662037
TotalHours : 0.0475356063888889
TotalMinutes : 2.85213638333333
TotalSeconds : 171.128183
TotalMilliseconds : 171128.183
-j6 auf 6-Kern (3 Minuten und 2 Sekunden) (Win7 Ultimate x64)(Visual Studio 2013)
PS C:\Boost\boost_1_56_0> measure-command { .\b2 -j6 --build-type=complete msvc stage }
Days : 0
Hours : 0
Minutes : 3
Seconds : 2
Milliseconds : 809
Ticks : 1828093904
TotalDays : 0.00211584942592593
TotalHours : 0.0507803862222222
TotalMinutes : 3.04682317333333
TotalSeconds : 182.8093904
TotalMilliseconds : 182809.3904
-j8 auf 6-Kern (3 Minuten und 17 Sekunden) (Win7 Ultimate x64)(Visual Studio 2013)
PS C:\Boost\boost_1_56_0> measure-command { .\b2 -j8 --build-type=complete msvc stage }
Days : 0
Hours : 0
Minutes : 3
Seconds : 17
Milliseconds : 652
Ticks : 1976523915
TotalDays : 0.00228764342013889
TotalHours : 0.0549034420833333
TotalMinutes : 3.294206525
TotalSeconds : 197.6523915
TotalMilliseconds : 197652.3915
Konfigurieren Sie
Building the Boost C++ Libraries.
Performing configuration checks
- 32-bit : yes (cached)
- arm : no (cached)
- mips1 : no (cached)
- power : no (cached)
- sparc : no (cached)
- x86 : yes (cached)
- has_icu builds : no (cached)
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
- zlib : no (cached)
- iconv (libc) : no (cached)
- iconv (separate) : no (cached)
- icu : no (cached)
- icu (lib64) : no (cached)
- message-compiler : yes (cached)
- compiler-supports-ssse3 : yes (cached)
- compiler-supports-avx2 : yes (cached)
- gcc visibility : no (cached)
- long double support : yes (cached)
warning: skipping optional Message Passing Interface (MPI) library.
note: to enable MPI support, add "using mpi ;" to user-config.jam.
note: to suppress this message, pass "--without-mpi" to bjam.
note: otherwise, you can safely ignore this message.
- zlib : no (cached)
Ich stelle fest, dass der 64-Bit-Build etwas länger dauert. Ich muss den gleichen Vergleich für diese Versionen durchführen und sie aktualisieren.
- See previous answers
- Weitere Antworten anzeigen