wake-up-neo.net

Erstellen von Boost-Version 1.58.0 mit Visual Studio 2015 (Enterprise)

Ich baue gerne 1.58.0 mit dem (neuen) Visual Studio 2015 (Enterprise) auf. In der Vergangenheit bin ich folgendermaßen vorgegangen:

  1. Laden Sie boost 1.58.0 von www.boost.org herunter.
  2. Dateien extrahieren (z. B. C:\thirdparty\vs2013\x64\boost_1_58_0)
  3. Starten Sie die Eingabeaufforderung von Visual Studio 2013 x64 (VS2013 x64 Native Tools Command Prompt).
  4. Wechseln Sie in das Boost-Verzeichnis (z. B. cd C:\thirdparty\vs2013\x64\boost_1_58_0).
  5. .\bootstrap.bat ausführen
  6. .\b2 -j8 --toolset=msvc-14.0 address-model=64 --build-type=complete stage ausführen
  7. b2 -j8 --toolset = msvc-12.0 address-model = 64 --build-type = vollständige stufe --with-python

In VS2015 gibt es jedoch keine VS2015-Eingabeaufforderung.

Außerdem fehlt der vcvarsall.bat, mit dem ich manchmal eine VS2013-Eingabeaufforderung eingerichtet habe.

Wie kann ich den Quellcode von Boost mit VS2015 kompilieren?

31
Vertexwahn

Ich habe versucht, Qt zu installieren, und ich hatte das gleiche Problem: vcvarsall.bat fehlte ... In meinem Fall bestand das Problem darin, dass ich die allgemeinen Tools von Visual C++ deaktivierte.

Ich habe meine VS 2015-Installation geändert und die fehlende Funktion Common Tools für Visual C++ 2015 hinzugefügt:

 enter image description here

Nach der Änderung befindet sich die Datei in C:\Programme (x86)\Microsoft Visual Studio 14.0\VC

14
Arnaud

Leider ist Boost-Dokumentation ziemlich ausführlich, da versucht wird, alle Betriebssysteme und Umgebungen zu berücksichtigen. Außerdem werden einige zeitsparende Details übersprungen. Hier sind kurze Schritte speziell für VS2015 mit Boost 1.61.

Lassen Sie uns zunächst verstehen, dass Boost eine riesige Bibliothek mit vielen Mitwirkenden ist. Daher ist der gesamte Boost-Code in zwei Teile unterteilt: Nur Header-Bibliotheken und Header + CPP-Bibliotheken. Ersteres erfordert keine Kompilierung. Sie schließen sie einfach ein und sind fertig. Später muss gebaut werden. In der Regel müssen Sie sich keine Gedanken über zusätzliche Schritte beim Bauen machen, obwohl es eine gute Idee ist, alles nur einmal einzurichten. 

Nur Boost-Header-Bibliotheken verwenden

  1. Laden Sie das Boost-Archiv im 7z-Format herunter und extrahieren Sie es mit 7Zip. Die ZIP-Datei ist viel größer als die 7z-Datei und kann über 20 Minuten mit dem Windows Explorer im Vergleich zu 5 Minuten mit 7Zip extrahiert werden.
  2. Erstellen Sie den Ordner c:\Programme\boost. Kopieren Sie den extrahierten Ordner "boost_1_61_0" in diesen Ordner. Dieser genaue Pfad ist keine Voraussetzung, aber wir werden ihn hier verwenden.
  3. Wechseln Sie in jedem VC++ - Projekt, in dem Sie Boost verwenden möchten, mit der rechten Maustaste auf Eigenschaften> C/C++> Allgemein> Weitere Include-Verzeichnisse und fügen Sie den Pfad C:\Programme\boost\boost_1_61_0 ohne Anführungszeichen hinzu.

Jetzt sollten Sie in der Lage sein, die meisten Boost-Bibliotheken mithilfe der Anweisung #include <boost/thread/mutex.hpp> zu verwenden.

Boost Header + CPP-Bibliotheken verwenden

Beispiele hierfür sind Boost.Chrono, Boost.Filesystem, Boost.GraphParallel, Boost.IOStreams, Boost.Locale, Boost.Regex, Boost.Thread, Boost.System usw. Wenn Sie diese Bibliotheken nicht verwenden, Die folgenden Schritte sind nicht erforderlich.

  1. Stellen Sie zunächst sicher, dass Sie kein Windows Driver Kit installiert haben. Wenn ja, deinstallieren Sie es vorerst, da höchstwahrscheinlich Include-Pfade durcheinander geraten sind, die dazu führen, dass das Build-Skript von Boost fehlschlägt.
  2. Rufen Sie die VS2015 x64-Eingabeaufforderung für native Tools als Administrator auf.
  3. CD unter C:\Programme\boost\boost_1_61_0 und führen Sie dann bootstrap.bat aus.
  4. Führen Sie.\B2 aus
  5. Ausführen.\B2 Variante = Debuggen, Release-Link = statischer Laufzeit-Link = statisches Adressmodell = 64
  6. Schneiden Sie den Ordner C:\Programme\boost\boost_1_61_0\stage\lib aus und kopieren Sie ihn nach C:\Programme\boost\boost_1_61_0\lib.
  7. Klicken Sie für das VC++ - Konsolenprojekt, das Sie mit diesen Bibliotheken verwenden möchten, mit der rechten Maustaste auf Eigenschaften> Linker> Allgemein> Zusätzliche Bibliotheksverzeichnisse und fügen Sie den Pfad C:\Programme\boost\boost_1_61_0\lib hinzu. Für VC++ - Bibliotheksprojekte finden Sie dieselbe Einstellung in Eigenschaften> Bibliothekar.

Jetzt bist du fertig!

Hinweis: Die ursprüngliche Frage zum Nichtfinden des Befehls Prompt wird durch Antwort von @Arnaud angesprochen. Im Folgenden werden weitere Schritte für die Boost-Installation beschrieben. Weitere Informationen zum Befehl Prompt finden Sie in Schritt 5.

18
Shital Shah

unten sind die schritte

1) Laden Sie die Bibliothek von unterhalb dieser Site herunter http://www.boost.org/

2) Entpacken Sie es. [Ich habe Dateien unter "F:\Internet-Downloads\boost_1_65_1" extrahiert.]

 Unzip Boost library -Directory

3) Öffnen Sie "Developer Command Prompt for VS2015" wie in der folgenden Momentaufnahme gezeigt.

 open_Developer_Command_Prompt

4) Wechseln Sie in das Verzeichnis, in dem Sie Ihre Dateien extrahiert haben.

5) Starten Sie die Datei bootstrap.bat wie in der folgenden Momentaufnahme gezeigt

 Run Bootstrap.bat

6) Sie erhalten Installationsinformationen, wie in der Momentaufnahme dargestellt

 bootstrap.bat - result

7) Starten Sie VS2015 und erstellen Sie eine Testanwendung, wie in der Momentaufnahme dargestellt

 Test Application

8) Fügen Sie das Boost-Verzeichnis in Ihr Projekt ein [Project Propertry-> C/C++ -> General-> Additional Include Directories], wie in der Momentaufnahme dargestellt

 Include Boost Directory in testapp

9) Führen Sie die Anwendung aus und fügen Sie "_SCL_SECURE_NO_WARNINGS" im Präprozessor-Verzeichnis hinzu, wenn der Fehler "C4996: 'std :: _ Copy_impl' 'auftritt: Funktionsaufruf mit Parametern, die möglicherweise unsicher sind". Priject-Eigenschaft > C/C++ -> Präprozessor-> Prozessordefinitionen]

 enter image description here

10 Ausgabe:

 output

1
Praveer Kumar

Verwenden Sie https://github.com/Microsoft/vcpkg in der VS-Eingabeaufforderung.

0
DLyons