2013-11-28 12 views
18

Ho scaricato boost 1.55 e MinGW. La console mi risponde che non ho alcun comando. Non riesco a capire come associare 2 path e attivare il compilatore gcc. P.S. Se costruisco boost con Microsoft Compiler avrò circa 8 errori con errore 3861 !!
Come posso costruirlo?Come costruire boost 1.55 con MINGW?

+1

Vedere anche http://stackoverflow.com/q/13256788/1390430 – Ben

risposta

31

Prima assicurati che la directory bin del tuo mingw sia nell'ambiente PATH così gcc e g++ è richiamabile dal prompt dei comandi. Successivamente vai nella directory principale del tuo boost di dove hai estratto i file.

Seguire questo con un bootstrap + b2.exe da compilare. Ad esempio, supponiamo che tu voglia compilare solo la porzione regex di boost. I comandi di seguire dovrebbero fare il trucco:

bootstrap mingw 
b2 toolset=gcc regex 

È possibile utilizzare:

b2 --show-libraries 

per ottenere un elenco di moduli si può costruire individualmente. Naturalmente è possibile costruire tutti loro con un semplice:

b2 toolset=gcc 

Partenza Boost Invocation per un elenco dettagliato delle opzioni disponibili.

+6

Ho dovuto usare 'bootstrap gcc' –

+3

@ChrisChiasson Lo stesso qui. bootstrap mingw, o bootstrap.bat mingw ha presentato errori per me. Solo il bootstrap gcc ha funzionato (con un paio di avvertimenti). In seguito ho fatto b2 toolset = gcc che ha permesso di costruire i binari dal sorgente per ~ 15 minuti e io ero bravo. Hai solo bisogno di questi 2 comandi come Boost versione 1.62.0 –

+0

@ RestlessC0bra questo funziona per me grazie. Utilizzando la versione boost_1_63_0. Aggiungo che ho trovato nel mio file progetto-config.jam "usando msvc;" Ero confuso se b2 usasse msvc per compilare fonti, tuttavia definendo toolset = gcc tutto funziona bene e boost è compilato con gcc da mingw. – stviper

19

La risposta di Greatwolf non ha funzionato per me, ecco come sono riuscito a farlo funzionare.

prima cosa, assicurarsi MinGW\bin è sul vostro cammino

Vai alla tools\build\v2 directory della cartella di spinta. Ad esempio, nel mio caso era C:\Boost\boost_1_55_0\tools\build\v2. Quindi eseguire

bootstrap mingw 

Dopo di che, passare alla directory principale Boost (questa parte è importante in quanto b2 rileva quello di costruire sulla base directory corrente)

Ora, se si vuole costruire Filesystem, fare

tools\build\v2\b2 toolset=gcc --build-type=complete stage --with-filesystem 

Ciò inserirà libboost_filesystem-mgw48-d-1_55.dll ecc. In stage\lib. Se vuoi costruire tutto, lascia la parte --with-filesystem.

+0

Grazie, il tuo commento mi ha davvero aiutato! – Salgat

4

sono stato in grado di costruire seguendo le istruzioni da antimonio. Tuttavia inizialmente ho ottenuto questo errore:

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

L'errore è stato risolto deselezionando la variabile PATH e mettendo solo la cartella MinGW in esso:

set PATH=C:\MinGW\bin 

Poi le istruzioni di antimonio ha fatto il lavoro per me. Grazie!! altri

Solo due piccole cose che potrebbero essere utili. BOOST per MinGW dovrebbe essere generato dalla shell di Windows, non dalla shell MSYS. E nella versione 1.57 lo script bootstrap.bat non si trova più in tools \ build \ v2, ma direttamente in tools \ build.

4

Se si è installato MinGW/GCC come parte di TDM-GCC, si avrà un "prompt dei comandi MinGW" che è possibile avviare. Carica una finestra del prompt dei comandi e mette il compilatore GCC sul PATH per quella finestra. (Simile al "Prompt dei comandi dello sviluppatore" installato con Visual Studio.)

Penso che sia disponibile anche lo the "MinGW distro".

Se si dispone di un prompt dei comandi integrato si può semplicemente:

  • Lancio "MinGW Prompt dei comandi"
  • Vai alla cartella Boost (ad esempio C:/Boost)
  • Run bootstrap gcc
  • eseguire b2 toolset=gcc (o qualsiasi altra cosa b2 comando è necessario)

Se si sta lavorando da esempi in cui qualcuno non imposta esplicitamente il set di strumenti, sarà necessario aggiungere toolset=gcc. Si noti che toolset deve essere posto nella proprietà posizione non l'opzione di o comando posizione. Da b2 --help:

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

Quindi, se qualcuno stava scrivendo il comando per richiamare il comando install con l'opzione --prefix, che avrei scritto come:

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

E che ci si ri-scrittura come :

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

Vedere b2 --help per maggiori dettagli.