2013-11-28 8 views
18

Ich habe Boost 1.55 und MinGW heruntergeladen. Konsole antwortet mir, dass ich keinen Befehl habe. Ich kann nicht verstehen, wie man 2 Pfad bindet und gcc-Compiler aktiviert. P.S. Wenn ich Boost mit Microsoft Compiler erstelle, werde ich ungefähr 8 Fehler mit Fehler 3861 haben !!
Wie kann ich es bauen?Wie Boost 1.55 mit MINGW bauen?

+1

Siehe auch http://StackOverflow.com/q/13256788/1390430 – Ben

Antwort

31

Stellen Sie zunächst sicher, dass sich das Verzeichnis mingws bin in Ihrer Umgebung befindet PATH, sodass gcc und g++ von Ihrer Eingabeaufforderung aus aufgerufen werden kann. Gehen Sie anschließend in das Stammverzeichnis Ihres Boosts, in dem Sie die Dateien extrahiert haben.

Folgen Sie das mit einem Bootstrap + b2.exe zu bauen. Angenommen, Sie möchten nur den Regex-Teil von Boost kompilieren. Die folgen Befehle sollte es tun:

bootstrap mingw 
b2 toolset=gcc regex 

Sie verwenden können:

b2 --show-libraries 

eine Liste von Modulen erhalten Sie individuell aufbauen können. Boost Invocation für eine detaillierte Liste der verfügbaren Optionen aus

b2 toolset=gcc 

Check: Natürlich können Sie mit nur alle von ihnen zu bauen.

+6

Ich musste 'bootstrap gcc' verwenden –

+3

@ChrisChiasson Das gleiche hier. Bootstrap Mingw oder Bootstrap.bat Mingw präsentierte Fehler für mich. Nur bootstrap gcc hat es funktioniert (mit ein paar Warnungen). Danach habe ich b2 toolset = gcc lassen es die Binärdateien von der Quelle für ~ 15 Minuten bauen und ich war gut. Sie brauchen nur diese 2 Befehle ab Boost Version 1.62.0 –

+0

@ RestlessC0bra das funktioniert für mich danke. Verwenden der Version boost_1_63_0. Ich füge hinzu, dass ich in meiner Projekt-config.jam Datei dieses "using msvc;" Ich war verwirrt, ob b2 msvc verwenden wird, um Quellen zu kompilieren, aber durch das Definieren von toolset = gcc funktioniert alles gut und boost wird mit gcc von mingw kompiliert. – stviper

19

Greatwolfs Antwort funktionierte nicht für mich, also habe ich es geschafft, dass es funktionierte.

Stellen Sie zunächst sicher MinGW\bin auf Ihrem Weg

Zum tools\build\v2 Verzeichnis Ihrer Boost-Ordner ist. Zum Beispiel war es in meinem Fall C:\Boost\boost_1_55_0\tools\build\v2. Dann laufen

bootstrap mingw 

Danach wechseln Sie in das Root-Boost-Verzeichnis (dieser Teil ist wichtig, da b2, was erkennt auf aktuellen Verzeichnis bauen basiert)

Nun, wenn Sie Filesystem aufbauen wollen, tun

Dies wird setzen libboost_filesystem-mgw48-d-1_55.dll usw. in stage\lib. Wenn Sie alles bauen wollen, lassen Sie einfach den --with-filesystem Teil weg.

+0

Vielen Dank, Ihr Kommentar hat mir wirklich geholfen! – Salgat

4

Ich konnte es nach den Anweisungen von Antimon bauen. Allerdings bekam ich zunächst diesen Fehler:

set PATH=C:\MinGW\bin 

Dann Antimony Anweisungen hat den Job für mich:

Bootstrapping the build engine 
\Windows was unexpected at this time. 

Der Fehler durch Löschen der PATH-Variable und setzen nur die MinGW Ordner darin gelöst wurde. Vielen Dank!!

Nur zwei andere kleine Dinge, die hilfreich sein könnten. BOOST für MinGW sollte aus der Windows-Shell und nicht aus der MSYS-Shell erstellt werden. Und in Version 1.57 befindet sich das Skript bootstrap.bat nicht mehr in tools \ build \ v2, sondern direkt in tools \ build.

4

Wenn Sie MinGW/GCC als Teil von TDM-GCC installiert haben, haben Sie eine "MinGW Command Prompt", die Sie starten können. Dies lädt ein Eingabeaufforderungsfenster und setzt den GCC-Compiler auf den PATH für dieses Fenster. (Ähnlich der "Developer Command Prompt", die mit Visual Studio installiert wird.)

Ich denke, dass the "MinGW distro" mit einem kommt auch.

Wenn Sie verfügen über eine integrierte Eingabeaufforderung können Sie einfach:

  • Launch "MinGW Eingabeaufforderung"
  • Gehen Sie zu Ihrem Boost-Ordner (zB C:/Boost)
  • Run bootstrap gcc
  • Führen Sie b2 toolset=gcc (oder was auch immer b2 Befehl, den Sie benötigen)

Wenn Sie mit Beispielen arbeiten, bei denen nicht explizit das Toolset festgelegt wird, müssen Sie selbst toolset=gcc hinzufügen. Beachten Sie, dass toolset in der Eigenschaft Position nicht die Option oder Befehl Position platziert werden muss. Von b2 --help: So

b2 [options] [properties] [install|stage] 

wenn jemand den Befehl Schreiben des install Befehl mit der --prefix Option aufzurufen, würden sie schreiben es als:

b2 --prefix=C:\boost-build install 

Und Sie würden neu schreiben es als :

b2 --prefix=C:\boost-build toolset=gcc install 

Weitere Details finden Sie unter b2 --help.