So verwenden Sie Boost in Visual Studio 2010


Antworten:


512

Obwohl Nates Antwort bereits ziemlich gut ist, werde ich sie wie gewünscht genauer für Visual Studio 2010 erweitern und Informationen zum Kompilieren in die verschiedenen optionalen Komponenten aufnehmen, für die externe Bibliotheken erforderlich sind.

Wenn Sie nur Header-Bibliotheken verwenden, müssen Sie lediglich den Boost-Download aufheben und die Umgebungsvariablen einrichten. Mit der folgenden Anweisung werden die Umgebungsvariablen nur für Visual Studio und nicht für das gesamte System festgelegt. Beachten Sie, dass Sie dies nur einmal tun müssen.

  1. Deaktivieren Sie die neueste Version von boost (1.47.0 zum Zeitpunkt des Schreibens) in einem Verzeichnis Ihrer Wahl (z C:\boost_1_47_0. B. ).
  2. Erstellen Sie ein neues leeres Projekt in Visual Studio.
  3. Öffnen Sie den Property Manager und erweitern Sie eine der Konfigurationen für die Plattform Ihrer Wahl.
  4. Wählen Sie & klicken Microsoft.Cpp.<Platform>.userSie Propertiesmit der rechten Maustaste und wählen Sie , um die Eigenschaftsseite zum Bearbeiten zu öffnen.
  5. Wählen Sie VC++ Directorieslinks.
  6. Bearbeiten Sie den Include DirectoriesAbschnitt so, dass er den Pfad zu Ihren Boost-Quelldateien enthält.
  7. Wiederholen Sie bei Bedarf die Schritte 3 bis 6 für eine andere Plattform Ihrer Wahl.

Wenn Sie den Teil des Boosts verwenden möchten, für den eine Erstellung erforderlich ist, aber keine der Funktionen, für die externe Abhängigkeiten erforderlich sind, ist die Erstellung recht einfach.

  1. Deaktivieren Sie die neueste Version von boost (1.47.0 zum Zeitpunkt des Schreibens) in einem Verzeichnis Ihrer Wahl (z C:\boost_1_47_0. B. ).
  2. Starten Sie die Visual Studio-Eingabeaufforderung für die Plattform Ihrer Wahl und navigieren Sie zu Boost.
  3. Ausführen: bootstrap.batum b2.exe (zuvor bjam genannt) zu erstellen.
  4. Führen Sie b2 aus:

    • 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

Gehen Sie spazieren / schauen Sie sich einen Film an oder 2 / ....

  1. Führen Sie die Schritte 2 bis 6 aus dem obigen Befehlssatz aus, um die Umgebungsvariablen festzulegen.
  2. Bearbeiten Sie den Library DirectoriesAbschnitt so, dass er den Pfad zur Ausgabe Ihrer Boost-Bibliotheken enthält. (Die Standardeinstellung für das obige Beispiel und die obigen Anweisungen wäre C:\boost_1_47_0\stage\lib. Benennen Sie das Verzeichnis um und verschieben Sie es zuerst, wenn Sie x86 und x64 nebeneinander haben möchten (z. B. nach <BOOST_PATH>\lib\x86& <BOOST_PATH>\lib\x64).
  3. Wiederholen Sie bei Bedarf die Schritte 2 bis 6 für eine andere Plattform Ihrer Wahl.

Wenn Sie die optionalen Komponenten möchten, haben Sie mehr Arbeit zu erledigen. Diese sind:

  • Boost.IOStreams Bzip2-Filter
  • Boost.IOStreams Zlib-Filter
  • Boost.MPI
  • Boost.Python
  • Boost.Regex ICU-Unterstützung

Boost.IOStreams Bzip2-Filter:

  1. Archivieren Sie die neueste Version der Quelldateien der bzip2-Bibliothek (1.0.6 zum Zeitpunkt des Schreibens) in einem Verzeichnis Ihrer Wahl (z C:\bzip2-1.0.6. B. ).
  2. Befolgen Sie die zweiten Anweisungen oben, um Boost zu erstellen, fügen Sie jedoch die Option hinzu, -sBZIP2_SOURCE="C:\bzip2-1.0.6"wenn Sie in Schritt 5 b2 ausführen.

Boost.IOStreams Zlib-Filter

  1. Archivieren Sie die neueste Version der Quelldateien der zlib-Bibliothek (1.2.5 zum Zeitpunkt des Schreibens) in einem Verzeichnis Ihrer Wahl (z C:\zlib-1.2.5. B. ).
  2. Befolgen Sie die zweiten Anweisungen oben, um Boost zu erstellen, fügen Sie jedoch die Option hinzu, -sZLIB_SOURCE="C:\zlib-1.2.5"wenn Sie in Schritt 5 b2 ausführen.

Boost.MPI

  1. Installieren Sie eine MPI-Distribution wie Microsoft Compute Cluster Pack.
  2. Befolgen Sie die Schritte 1 bis 3 aus der zweiten Anleitung oben, um den Boost zu erstellen.
  3. Bearbeiten Sie die Datei project-config.jamin dem Verzeichnis <BOOST_PATH>, das beim Ausführen von Bootstrap entstanden ist. Fügen Sie in einer Zeile Folgendes hinzu using mpi ;(beachten Sie das Leerzeichen vor dem ';').
  4. Befolgen Sie die restlichen Schritte aus der zweiten Anweisung oben, um den Boost zu erstellen. 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

  1. Installieren Sie eine Python-Distribution wie ActivePython von ActiveState. Stellen Sie sicher, dass sich die Python-Installation in Ihrem PATH befindet.
  2. Um die 32-Bit-Version der Bibliothek vollständig zu erstellen, ist 32-Bit-Python erforderlich, ähnlich wie bei der 64-Bit-Version. Wenn Sie aus diesem Grund mehrere Versionen installiert haben, müssen Sie b2 mitteilen, wo sich eine bestimmte Version befindet und wann welche verwendet werden soll. Eine Möglichkeit, dies zu tun, besteht darin, die Datei project-config.jamin dem Verzeichnis zu bearbeiten, das <BOOST_PATH>sich aus der Ausführung von Bootstrap ergibt. Fügen Sie in den folgenden zwei Zeilen die entsprechenden Einstellungen für Ihre Python-Installationspfade und -Versionen hinzu (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 dazu führt, dass die MPI-Erstellung fehlschlägt. Sie müssen also ein separates Gebäude mit und ohne Spezifikation erstellen, um alles zu erstellen, wenn Sie auch MPI erstellen.

  3. Befolgen Sie die zweiten Anweisungen oben, um den Boost aufzubauen.

Boost.Regex ICU-Unterstützung

  1. Archivieren Sie die neueste Version der Quelldatei der ICU4C-Bibliothek (4.8 zum Zeitpunkt des Schreibens) in einem Verzeichnis Ihrer Wahl (z C:\icu4c-4_8. B. ).
  2. Öffnen Sie die Visual Studio-Lösung in <ICU_PATH>\source\allinone.
  3. Erstellen Sie alle für die Debug- und Release-Konfiguration für die Plattform Ihrer Wahl. Es kann ein Problem beim Erstellen der letzten Versionen von ICU4C mit Visual Studio 2010 auftreten, wenn sich die Ausgabe für Debug- und Release-Build im selben Verzeichnis befindet (dies ist das Standardverhalten). Eine mögliche Problemumgehung besteht darin, ein Build All (z. B. Debug Build) und anschließend ein Rebuild All in der 2. Konfiguration durchzuführen (z. B. Release Build).
  4. Wenn Sie für x64 erstellen, müssen Sie x64 OS ausführen, da es nach dem Erstellen Schritte gibt, bei denen einige der 64-Bit-Anwendungen ausgeführt werden, die erstellt werden.
  5. Entfernen Sie optional das Quellverzeichnis, wenn Sie fertig sind.
  6. Befolgen Sie die zweiten Anweisungen oben, um Boost zu erstellen, fügen Sie jedoch die Option hinzu, -sICU_PATH="C:\icu4c-4_8"wenn Sie in Schritt 5 b2 ausführen.

@ Sorin: Warum solltest du das jemals ändern müssen?
Jalf

6
Es ist zu beachten, dass Sie Extras> Einstellungen> Expertenmodus wählen müssen, um die Eigenschaftenblätter überhaupt anzuzeigen. Ich habe ein bisschen gegoogelt, um das endlich herauszufinden ...
Zack The Human

@KTC: Es handelt sich tatsächlich um "Experteneinstellungen", die über das Menü "Extras"> "Einstellungen" verfügbar sind. Ich verwende VSC ++ 2010 Express Edition und ohne Aktivierung der "Experteneinstellungen" können Sie die Eigenschaftenblätter nicht sehen.
Zack The Human

11
Wenn Sie sowohl x64 als auch win32 nebeneinander möchten, fügen Sie den entsprechenden Builds "--stagedir = lib / win32" und "--stagedir = lib / x64" hinzu.
M. Tibbits

3
Für ein Video-Tutorial zum Erstellen und Konfigurieren von Boost für Visual Studio 2010 könnte dies hilfreich sein: youtube.com/watch?v=5AmwIwedTCM
Christophe

158

Während die Anweisungen auf der Boost-Website hilfreich sind, finden Sie hier eine komprimierte Version, die auch x64-Bibliotheken erstellt.

  • Sie müssen dies nur tun, wenn Sie eine der in Abschnitt 3 der Anweisungsseite genannten Bibliotheken verwenden . (Um beispielsweise Boost.Filesystem verwenden zu können, muss es kompiliert werden.) Wenn Sie keines davon verwenden, entpacken Sie es einfach und gehen Sie.

Erstellen Sie die 32-Bit-Bibliotheken

Dadurch werden die Boost-Header-Dateien unter C:\Boost\include\boost-(version)und die 32-Bit-Bibliotheken unter installiert C:\Boost\lib\i386. Beachten Sie, dass der Standardspeicherort für die Bibliotheken ist C:\Boost\lib, Sie sie jedoch in ein i386Verzeichnis stellen möchten, wenn Sie für mehrere Architekturen erstellen möchten .

  1. Entpacken Sie Boost in ein neues Verzeichnis.
  2. Starten Sie eine 32-Bit-MSVC-Eingabeaufforderung und wechseln Sie in das Verzeichnis, in dem Boost entpackt wurde.
  3. Lauf: bootstrap
  4. Lauf: b2 toolset=msvc-12.0 --build-type=complete --libdir=C:\Boost\lib\i386 install

    • Verwenden Sie für Visual Studio 2012 toolset=msvc-11.0
    • Verwenden Sie für Visual Studio 2010 toolset=msvc-10.0
    • Verwenden Sie für Visual Studio 2017 toolset=msvc-14.1
  5. Fügen Sie C:\Boost\include\boost-(version)Ihrem Include-Pfad hinzu.

  6. Fügen Sie C:\Boost\lib\i386Ihrem libs-Pfad hinzu.

Erstellen Sie die 64-Bit-Bibliotheken

Dadurch werden die Boost-Header-Dateien unter C:\Boost\include\boost-(version)und die 64-Bit-Bibliotheken unter installiert C:\Boost\lib\x64. Beachten Sie, dass der Standardspeicherort für die Bibliotheken ist C:\Boost\lib, Sie sie jedoch in ein x64Verzeichnis stellen möchten, wenn Sie für mehrere Architekturen erstellen möchten .

  1. Entpacken Sie Boost in ein neues Verzeichnis.
  2. Starten Sie eine 64-Bit-MSVC-Eingabeaufforderung und wechseln Sie in das Verzeichnis, in das Boost entpackt wurde.
  3. Lauf: bootstrap
  4. Lauf: b2 toolset=msvc-12.0 --build-type=complete --libdir=C:\Boost\lib\x64 architecture=x86 address-model=64 install
    • Verwenden Sie für Visual Studio 2012 toolset=msvc-11.0
    • Verwenden Sie für Visual Studio 2010 toolset=msvc-10.0
  5. Fügen Sie C:\Boost\include\boost-(version)Ihrem Include-Pfad hinzu.
  6. Fügen Sie C:\Boost\lib\x64Ihrem libs-Pfad hinzu.

24
Wenn Sie sie nicht selbst erstellen möchten, können Sie vorgefertigte Binärdateien von sourceforge installieren: sourceforge.net/projects/boost/files/boost-binaries Für jede Boost-Version gibt es Installationsprogramme für jede Visual Studio-Version (in sowohl 32 als auch 64 Bit).
teeks99

Was ist der Grund für die Verwendung von Architektur = x86 anstelle von Architektur = x64 bei einem 64-Bit-Build? EDIT:
Ich habe es

hey, @ teeks99 ich habe deinen Link besucht, aber für die Version 1.4.7 habe ich zu viele Dateien gefunden, welche sollte ich trotzdem verwenden? ist es nicht besser, wenn es eine einzige Datei (Bibliothek / DLL) gibt, die für alle Funktionen von Boost geeignet ist?
Gumuruh

2
Versuchen Sie sourceforge.net/projects/boost/files/boost-binaries/… und Sie sollten in der Lage sein, dort ein Installationsprogramm für 1.47.0 zu finden, je nachdem, ob Sie 32-Bit oder 64-Bit benötigen. Dort finden Sie viele DLLs, genau so funktioniert Boost. Solange Sie Ihr Visual Studio-Projekt jedoch auf das richtige Verzeichnis verweisen, sollte es keine Rolle spielen, wie viele sich dort befinden, da automatisch die richtigen ausgewählt werden.
teeks99

20

Sie können auch -j% NUMBER_OF_PROCESSORS% als Argument verwenden, um alle Ihre Kerne zu verwenden. Macht die Dinge auf meinem Quad-Core superschnell.


3
Diesmal eine Million ... das ist es, was ich letztendlich als kombinierte Anstrengung für VS2015 unternommen habe: b2 -j% NUMBER_OF_PROCESSORS% toolset = msvc-14.0 --build-type = complete --libdir = C: \ Boost \ lib \ x64 Architektur = x86
Adressmodell

für Powershell ist es: -j "$ env: NUMBER_OF_PROCESSORS"
Oscillon

14

Ich könnte den folgenden Trick empfehlen: Erstellen Sie eine spezielle boost.propsDatei

  1. Öffnen Sie den Hausverwalter
  2. Klicken Sie mit der rechten Maustaste auf Ihren Projektknoten und wählen Sie "Neues Projekteigenschaftsblatt hinzufügen".
  3. Wählen Sie einen Ort aus und benennen Sie Ihr Eigenschaftenblatt (z. B. c: \ mystuff \ boost.props).
  4. Ändern Sie die zusätzlichen Ordner Include und Lib im Suchpfad.

Diese Prozedur hat den Wert, dass Boost nur in Projekten enthalten ist, in denen Sie ihn explizit einschließen möchten. Wenn Sie ein neues Projekt haben, das Boost verwendet, gehen Sie wie folgt vor:

  1. Öffnen Sie den Hausverwalter.
  2. Klicken Sie mit der rechten Maustaste auf den Projektknoten und wählen Sie "Vorhandenes Eigenschaftenblatt hinzufügen".
  3. Wählen Sie das Boost-Eigenschaftenblatt aus.

BEARBEITEN (folgende Bearbeitung von @ jim-fred):

Die resultierende boost.propsDatei sieht ungefähr so ​​aus ...

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets" />
  <PropertyGroup Label="UserMacros">
    <BOOST_DIR>D:\boost_1_53_0\</BOOST_DIR>
  </PropertyGroup>
  <PropertyGroup>
    <IncludePath>$(BOOST_DIR);$(IncludePath)</IncludePath>
    <LibraryPath>$(BOOST_DIR)stage\lib\;$(LibraryPath)</LibraryPath>
  </PropertyGroup>
</Project>

Es enthält ein Benutzermakro für den Speicherort des Boost-Verzeichnisses (in diesem Fall D: \ boost_1_53_0) und zwei weitere Parameter: IncludePath und LibraryPath. Eine Anweisung #include <boost/thread.hpp>würde thread.hpp im entsprechenden Verzeichnis finden (in diesem Fall D: \ boost_1_53_0 \ boost \ thread.hpp). Das Verzeichnis 'stage \ lib \' kann sich je nach installiertem Verzeichnis ändern.

Diese Datei boost.props befindet sich möglicherweise im D:\boost_1_53_0\Verzeichnis.


13

Welche Teile von Boost benötigen Sie? Viele Dinge sind Teil von TR1, das mit Visual Studio geliefert wird. Man könnte also einfach sagen, zum Beispiel:

#include <tr1/memory>

using std::tr1::shared_ptr;

Laut James sollte dies auch funktionieren (in C ++ 0x):

#include <memory>

using std::shared_ptr;

5
In VS2010 wurden alle TR1-Bibliotheken, die Teil von C ++ 0x werden std, wie im C ++ 0x-Standard in den Namespace verschoben . (Ich denke, sie befinden sich std::tr1aus Gründen der Abwärtskompatibilität wahrscheinlich auch im Namespace).
James McNellis

6

Dieser Thread gibt es schon eine Weile und ich dachte, ich würde etwas darüber hinzufügen, wie Boost so schnell wie möglich auf Ihrer spezifischen Hardware erstellt werden kann.

Wenn Sie einen 4- oder 6-Kern haben, verwenden Sie -j5 bzw. -j7. Sicherlich nicht der Standard-Build oder -j2, es sei denn, Sie haben tatsächlich einen Dual-Core.

Ich verwende eine Sandy Bridge Extreme mit 3930K (6-Core) auf meiner Hauptstation, habe aber eine 2600k (4-Core) auf einer älteren Backup-Box und der Trend ist, dass ich mit N + die besten Boost-Kompilierungszeiten erhalte 1 Build-Prozesse, wobei N die Anzahl der physischen Kerne ist. N + 2 erreicht einen Punkt abnehmender Renditen und die Zeiten steigen.

Hinweise: Hyperthreading ist aktiviert, 32 GB 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-Core (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-Core (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

-j7 baut auf 6-Core auf

Konfig

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 durchführen und aktualisieren.


5

Auch ein kleiner Hinweis: Wenn Sie die Kompilierungszeit verkürzen möchten, können Sie das Flag hinzufügen

-j2

zwei parallele Builds gleichzeitig ausführen. Dies könnte es auf das Ansehen eines Films reduzieren;)


2
Das Erklären der Verwendung -j2würde den Wert Ihrer Antwort erhöhen.
ST3

5

Laden Sie boost von folgender Adresse herunter: http://www.boost.org/users/download/, z. B. von svn

  • Windows -> Schildkröte (der einfachste Weg)

Danach: cmd -> gehe zum Boost-Verzeichnis ("D: \ boostTrunk" - wo du das Paket auscheckst oder herunterlädst und extrahierst): Befehl: bootstrap

Wir haben bjam.exe in ("D: \ boostTrunk") erstellt. Danach: Befehl: bjam toolset = msvc-10.0 Variante = Debug, Release Threading = Multi Link = Statisch (Es wird einige Zeit ~ dauern.)

Danach: Öffnen Sie Visual Studio 2010 -> erstellen Sie ein leeres Projekt -> gehen Sie zu den Projekteigenschaften -> setzen Sie:

Projekteigenschaften VS 2010

Diesen Code einfügen und prüfen, ob er funktioniert?

#include <iostream>
#include <boost/shared_ptr.hpp>
#include <boost/regex.hpp>

using namespace std;

struct Hello 
{
    Hello(){ 
        cout << "Hello constructor" << endl;
    }

    ~Hello(){
        cout << "Hello destructor" << endl;
        cin.get();
    }
};


int main(int argc, char**argv)
{
    //Boost regex, compiled library
    boost::regex regex("^(Hello|Bye) Boost$");
    boost::cmatch helloMatches;
    boost::regex_search("Hello Boost", helloMatches, regex);
    cout << "The word between () is: " << helloMatches[1] << endl;

    //Boost shared pointer, header only library
    boost::shared_ptr<Hello> sharedHello(new Hello);

    return 0;
}

Ressourcen: https://www.youtube.com/watch?v=5AmwIwedTCM


4

So konnte ich Boost nutzen:

  1. Laden Sie die Zip-Version der Boost-Bibliotheken herunter und extrahieren Sie sie.
  2. Führen Sie die Datei bootstrap.bat aus und führen Sie dann bjam.exe aus.
  3. Warten Sie ungefähr 30 Minuten.
  4. Erstellen Sie ein neues Projekt in Visual Studio.
  5. Gehen Sie zu Projekt -> Eigenschaften -> Linker -> Allgemein -> Zusätzliche Bibliotheksverzeichnisse und fügen Sie das Verzeichnis boost / stage / lib hinzu .
  6. Gehen Sie zu Projekt -> Eigenschaften -> C / C ++ -> Allgemein -> Zusätzliche Include-Verzeichnisse und fügen Sie das Boost- Verzeichnis hinzu.

Sie können Ihr Projekt fehlerfrei erstellen!


3

Die hier befindlichen Windows-Installationsprogramme haben für mich perfekt funktioniert. Ich habe folgende Schritte unternommen:

  1. Folgen Sie dem Installationsassistenten, bis Sie fertig sind.
  2. Führen Sie Visual Studio aus.
  3. Erstellen Sie ein neues C ++ - Projekt
  4. Öffnen Sie die Projekteigenschaften (finden Sie, indem Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektnamen klicken).
  5. Fügen Sie unter "C / C ++> Allgemein> Zusätzliche Include-Verzeichnisse" den Pfad hinzu, in dem sich das Boost-Stammverzeichnis befindet. Die Standardeinstellung für meine Version war C: \ local \ boost_1_63_0. Die Zahl nach "Boost" ist die Version von Boost.
  6. Fügen Sie in den Projekteigenschaften unter "Linker> Zusätzliche Bibliotheksverzeichnisse" das Verzeichnis für Bibliotheksdateien hinzu. Die Standardeinstellung für meine Version war C: \ local \ boost_1_63_0 \ lib64-msvc-14.0. Die Zahl nach "lib" bezieht sich auf das Build-Ziel (32 Bit oder 64 Bit in Visual Studio) und die Zahl nach "msvc" bezieht sich auf die Version von Visual Studio (14.0 bezieht sich auf Visual Studio 2015, aber ich bin es Verwendung mit dem Visual Studio 2017).

Viel Glück!


2

Eine kleine Ergänzung zu KTCs sehr informativer Hauptantwort:

Wenn Sie das kostenlose Visual Studio c ++ 2010 Express verwenden und es geschafft haben, dieses zum Kompilieren von 64-Bit-Binärdateien zu verwenden, und dies nun zur Verwendung einer 64-Bit-Version der Boost-Bibliotheken verwenden möchten, erhalten Sie möglicherweise 32- Bit-Bibliotheken (Ihr Kilometerstand kann natürlich variieren, aber auf meinem Computer ist dies der traurige Fall).

Ich könnte dies folgendermaßen beheben: Zwischen den oben beschriebenen Schritten als

  1. Starten Sie eine 32-Bit-MSVC-Eingabeaufforderung und wechseln Sie in das Verzeichnis, in dem Boost entpackt wurde.
  2. Ausführen: Bootstrap

Ich habe einen Aufruf von 'setenv' eingefügt, um die Umgebung festzulegen. Für einen Release-Build werden die folgenden Schritte wie folgt ausgeführt:

  1. Starten Sie eine 32-Bit-MSVC-Eingabeaufforderung und wechseln Sie in das Verzeichnis, in dem Boost entpackt wurde.
  2. Führen Sie Folgendes aus: "C: \ Programme \ Microsoft SDKs \ Windows \ v7.1 \ Bin \ setenv.cmd" / Release / x64
  3. Ausführen: Bootstrap

Ich habe diese Informationen hier gefunden: http://boost.2283326.n4.nabble.com/64-bit-with-VS-Express-again-td3044258.html


Wissen Sie, ob dies für die Community Edition von VS2015 gilt? Ich scheine mit 32-Bit-Binärdateien zu enden, obwohl ich "address-model = 64"
paxos1977

@ paxos1977 Entschuldigung, ich weiß es nicht - ich habe es selbst nicht für VS2015 versucht.
Ecotax

Es gilt definitiv für VS 2015 Express für Desktop Edition, ich habe es gerade selbst erlebt. Die Alternative zu setenv besteht darin, "vcvarsall x86_amd64"
aufzurufen

1

Ein minimalistisches Beispiel für den Einstieg in Visual Studio:

1. Laden Sie Boost hier herunter und entpacken Sie es.

2.Erstellen Sie ein leeres Visual Studio-Projekt mithilfe einer Beispiel-Boost-Bibliothek, für die keine separate Kompilierung erforderlich ist:

#include <iostream>
#include <boost/format.hpp>

using namespace std;  
using namespace boost;  

int main()  
{  
    unsigned int arr[5] = { 0x05, 0x04, 0xAA, 0x0F, 0x0D };  

    cout << format("%02X-%02X-%02X-%02X-%02X")  
            % arr[0]  
            % arr[1]  
            % arr[2]  
            % arr[3]  
            % arr[4]  
         << endl;  
}  

3. Legen Sie in Ihren Visual Studio-Projekteigenschaften die zusätzlichen Include-Verzeichnisse fest:

Projekteigenschaften

Für ein sehr einfaches Beispiel:

So installieren Sie die Boost-Bibliotheken in Visual Studio

Wenn Sie nicht die gesamte Boost-Bibliothek verwenden möchten, nur eine Teilmenge:

Verwenden einer Teilmenge der Boost-Bibliotheken in Windows

Wenn Sie jetzt speziell auf die Bibliotheken eingehen möchten, die kompiliert werden müssen:

Verwendung der kompilierten Boost-Bibliotheken in Windows


0

Darüber hinaus finde ich etwas sehr nützlich. Verwenden Sie Umgebungsvariablen für Ihre Boost-Pfade. (So ​​legen Sie Umgebungsvariablen in Windows fest, Link unten für 7,8,10) Die Variable BOOST_ROOT scheint nicht mehr alltäglich zu sein und wird auf den Stammpfad gesetzt, in dem Sie den Boost entpacken.

Dann in Eigenschaften, c ++, allgemein, Zusätzliche Include-Verzeichnisse verwenden $(BOOST_ROOT). Wenn Sie dann zu einer neueren Version der Boost-Bibliothek wechseln, können Sie Ihre Umgebungsvariable so aktualisieren, dass sie auf diese neuere Version verweist. Wenn Sie mehr Projekte verwenden, müssen Sie Boost verwenden. Sie müssen nicht für alle Projekte die zusätzlichen Include-Verzeichnisse aktualisieren.

Sie können auch eine BOOST_LIB-Variable erstellen und darauf verweisen, wo die Bibliotheken bereitgestellt werden. Ebenso müssen Sie für die Linker-> Additional Library Directories keine Projekte aktualisieren. Ich habe einige alte Sachen mit vs10 und neue Sachen mit vs14 gebaut, also habe ich beide Varianten der Boost Lib in den gleichen Ordner gebaut. Wenn ich also ein Projekt von vs10 auf vs14 verschiebe, muss ich die Boost-Pfade nicht ändern.

ANMERKUNG: Wenn Sie eine Umgebungsvariable ändern, funktioniert sie in einem geöffneten VS-Projekt nicht plötzlich. VS lädt beim Start Variablen. Sie müssen also VS schließen und erneut öffnen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.