2011-11-30 8 views
10

Vorrei costruire spinta utilizzando due compilatori diversi, MinGW e Visual C++ 2010 Express, utilizzando bjam:cercando di costruire Boost: non riesco a bjam

Il problema è che non ho bjam. Non riuscivo a trovarlo nella directory Boost, e quello che ho scaricato da qualche altra parte era una versione sbagliata.

Dovrei essere in grado di costruirlo dal codice in Boost, ma come? Ho letto che devo avviare build.bat dalla directory BOOST_ROOT/tools/jam/src, ma quella directory non esiste !

Grazie!


  • Piattaforma: Windows 7
  • compilatori: MinGW e Visual C++ 2010 Express

Aggiornamento:

sono stato in grado di ottenere bjam con: bootstrap.bat gcc
Quindi, avviare bjam con i parametri precedenti, ottengo solo le librerie per MinGW (.dll e .a).
Questo è un estratto dei messaggi di errore che ricevo per quanto riguarda Visual C++ 10:

... 
    call "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 >nul 
cl /Zm800 -nologo @"bin.v2\libs\test\build\msvc-10.0\release\asynch-exceptions-on\threading-multi\plain_report_formatter.obj.rsp" 
...failed compile-c-c++ bin.v2\libs\test\build\msvc-10.0\release\asynch-exceptions-on\threading-multi\plain_report_formatter.obj... 
... 
...skipped <pbin.v2\libs\test\build\msvc-10.0\release\asynch-exceptions-on\threading-multi>boost_unit_test_framework-vc100-mt-1_48.dll for lack of <pbin.v2\libs\test\build\msvc-10.0\release\asynch-exceptions-on\threading-multi>compiler_log_formatter.obj... 
... 
common.mkdir bin.v2\libs\thread\build\msvc-10.0\release\threading-multi 
common.mkdir bin.v2\libs\thread\build\msvc-10.0\release\threading-multi\win32 
compile-c-c++ bin.v2\libs\thread\build\msvc-10.0\release\threading-multi\win32\thread.obj 
\Microsoft was unexpected at this time. 
... 
    call "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 >nul 
cl /Zm800 -nologo @"bin.v2\libs\thread\build\msvc-10.0\release\threading-multi\win32\thread.obj.rsp" 

...failed compile-c-c++ bin.v2\libs\thread\build\msvc-10.0\release\threading-multi\win32\thread.obj... 
compile-c-c++ bin.v2\libs\thread\build\msvc-10.0\release\threading-multi\win32\tss_dll.obj 
\Microsoft was unexpected at this time. 
... 
...skipped <pC:\Boost\lib>boost_thread-vc100-mt-1_48.lib for lack of <pbin.v2\libs\thread\build\msvc-10.0\release\threading-multi>boost_thread-vc100-mt-1_48.lib 
... 

Cercando di utilizzare:
bootstrap.bat vc100
ottengo l'errore: "Unknown set di strumenti: VC100"

con entrambi:
bootstrap.bat vc10
o:
bootstrap.bat mingw
I ottenere: "\ Microsoft era inaspettato in questo momento."

Modifica project-config.jam non ha aiutato.

Così, ho fatto un grande passo avanti, ma VC10 non funziona, eppure ...

risposta

5

C'è un bootstrap.bat nella directory spinta. Eseguirlo.

Costruirà automaticamente bjam (probabilmente usando visual C++).

+1

Questo è ciò che ottengo (in esecuzione dal prompt di Visual C++): Building Boost.Build engine \ Microsoft era inaspettato in questo momento. –

+0

Desidero che Boost sia disponibile sia per MinGW che Visual C++ 2010 Express, ma non mi interessa cosa utilizzo effettivamente per generare Boost. –

+0

3 soluzioni: 1 ° provare a eseguire "tool-> visual studio command prompt" da IDE visivo, quindi provare di nuovo bootstrap.bat dalla console 2 ° tipo boostrap.bat gcc. Se mingw è in c: \ mingw dovrebbe funzionare 3 ° eseguire bootstrap.sh da cygwin (non funziona da mingw-msys) – reder

5

La struttura della directory in boost è cambiata nella versione recente, credo.

Le origini per bjam sono in tools/build/v2/engine. Esegui build.sh mingw da quella directory utilizzando la shell MinGW e dovrebbe creare bjam.exe e b2.exe e inserirli in tools/build/v2/engine/ntx86. Copia b2.exe nella directory root di boost. Dovresti quindi essere in grado di creare librerie Visual C++ con b2 toolset=msvc.

Spero che questo aiuti.

Problemi correlati