10
votes

Essayer de construire Boost: Je ne peux pas obtenir Bjam

J'aimerais construire Boost en utilisant deux compilateurs différents, Mingw et Visual C ++ 2010 Express, en utilisant BJAM:

...
    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
...


0 commentaires

3 Réponses :


6
votes

Il y a un bootstrap.bat dans votre répertoire Boost. Courez-le.

Il construira automatiquement Bjam (probablement à l'aide de Visual C ++).


5 commentaires

C'est ce que j'obtiens (en cours d'exécution de Visual C ++ Invite): Bâtiment Boost.Build Engine \ Microsoft a été inattendu à ce moment-là.


Je veux que Boost soit disponible pour Mingw et Visual C ++ 2010 Express, mais je ne me soucie pas de ce que j'utilise pour construire réellement boost.


3 Solutions: 1 ° Essayez d'exécuter "Outils-> Invite de commande Visual Studio" de Visual IDE, puis essayez Bootstrap.bat à nouveau à partir de la console 2 ° Type BOOSTRAP.BAT GCC. Si MINGW est en C: \ MINGW, il devrait fonctionner 3 ° Courir Bootstrap.sh de Cygwin (il ne fonctionne pas de Mingw-Msys)


La deuxième solution fonctionne le meilleur, mais je ne reçois toujours pas de bibliothèques pour Visual C ++. J'ai peur que Cygwin n'est pas une option. J'ai mis à jour ma question.


Quelle version de boost utilisez-vous? Essayez au moins 1,47 ou 1,48. Si tout le reste échoue, envisagez de télécharger des bibliothèques précompilées de BoostPro.



5
votes

La structure de répertoires dans Boost a changé dans la version récente, je pense.

Les sources de BJAM sont dans Outils / Build / V2 / Moteur . Exécutez build.sh mingw à partir de ce répertoire à l'aide de MINGW Shell, et il doit construire bjam.exe et b2.exe et placez-les dans Outils / Build / V2 / Moteur / NTX86 . Copiez B2.exe dans le répertoire racine Boost. Vous devriez alors être capable de construire des bibliothèques Visual C ++ avec B2 Toolset = MSVC .

espère que cela aide.


0 commentaires

0
votes

Dans mon cas, la solution de Jork fonctionne!

J'ai cherché le fichier bjam.exe et trouvé dans le répertoire Outils / Build / Src / Moteur> et vient de la copier dans le répertoire racine de Boost. Mais je dois dire que c'est affreux, je me sentais comme l'écrivain de CodeBase essaie de cacher STH. Et j'ai trouvé que mon bjam.exe est exactement la même taille avec b2.exe , qui est 404kb.

Je reviendrai plus tard pour que j'ai résolu ce problème.


0 commentaires