Impossible de construire des bibliothèques Boost avec GCC
Je suis avec Windows 7 64 bits, et que vous voulez compiler le non-bibliothèques précompilées (plus précisément, j'ai besoin de système de fichiers) à partir de la ligne de commande (je n'utilise pas MSVC). J'ai MinGW, mais lire sur le site web de Boost que MSYS la coque n'est pas pris en charge, donc je suis en train de compiler les bibliothèques à partir de l'invite de commande Windows.
Tout d'abord, l'exécution de bootstrap.bat résultats dans l'erreur suivante:
Building Boost.Jam build engine
'cl' is not recognized as an internal or external command,
operable program or batch file.
Failed to build Boost.Jam build engine.
Please consult bjam.log for furter diagnostics.
You can try to obtain a prebuilt binary from
http://sf.net/project/showfiles.php?group_id=7586&package_id=72941
Also, you can file an issue at http://svn.boost.org
Please attach bjam.log in that case.
Plus, il n'y a pas de bjam.fichier journal n'importe où dans le boost_root répertoire.
Non-respect de cette erreur, et en essayant de lancer le téléchargement bjam.exe fichier, je reçois un autre message d'erreur:
c:/boost_1_45_0/tools/build/v2/build\configure.jam:145: in builds-raw
*** argument error
* rule UPDATE_NOW ( targets * : log ? : ignore-minus-n ? )
* called with: ( <pbin.v2\libs\regex\build\gcc-mingw-4.5.2\debug\address-model64\architecture-x86>has_icu.exe : : ignore-minus-n : ignore-minus-q )
* extra argument ignore-minus-q
(builtin):see definition of rule 'UPDATE_NOW' being called
c:/boost_1_45_0/tools/build/v2/build\configure.jam:179: in configu
re.builds
c:/boost_1_45_0/tools/build/v2/build\configure.jam:216: in object(
check-target-builds-worker)@409.check
etc. avec un grand nombre de plaintes. Le réglage de la "architecture" et "adresse-modèle" options ne l'aide pas.
Des suggestions?
@Andre
Suivantes Andre suggestion, j'ai créé minGW-bjam en cours d'exécution pendant une heure et demie et construit la plupart des bibliothèques, mais pas celui dont j'ai besoin en ce moment: le système de fichiers.
En essayant de compiler seul système de fichier, en spécifiant la version 2 avec define="BOOST_FILESYSTEM_VERSION=2"
et --disable-filesystem3
n'aide pas. J'obtiens l'erreur suivante:
gcc.compile.c++ bin.v2\libs\filesystem\build\gcc-mingw-4.5.2\debug\v3\src\operations.o
In file included from ./boost/filesystem/v3/operations.hpp:24:0,
from libs\filesystem\v3\src\operations.cpp:48:
./boost/filesystem/v3/config.hpp:16:5: error: #error Compiling Filesystem version 3
file with BOOST_FILESYSTEM_VERSION defined != 3
libs\filesystem\v3\src\operations.cpp:647:26: warning:
'<unnamed>::create_symbolic_link_api' defined but not used
"g++" -ftemplate-depth-128 -O0 -fno-inline -Wall -g -DBOOST_ALL_NO_LIB=1 -
DBOOST_FILESYSTEM_DYN_LINK=1 -DBOOST_FILESYSTEM_VERSION=2 -DBOOST_SYSTEM_DYN_LINK=1 -
I"." -c -o "bin.v2\libs\filesystem\build\gcc-mingw-4.5.2\debug\v3\src\operations.o"
"libs\filesystem\v3\src\operations.cpp"
etc. avec beaucoup de ...failed
consolidés.
Tous les conseils ici?
source d'informationauteur vkotor
Vous devez vous connecter pour publier un commentaire.
Le script bootstrap suppose la msvc compilateur est disponible. Mais vous pouvez construire bjam à la main sans le script bootstrap:
Étape dans le menu outils\build\v2\engine\src répertoire "build.chauve-souris mingw". Il permettra de créer un bjam.exe. Vous pouvez ensuite le mettre dans votre %PATH% ou peut-être dans la racine boost répertoire...
Pour être honnête, j'ai l'habitude de construire bjam comme ça avec la msvc compilateur et d'utiliser ce "msvc bjam" pour construire mon mingw bibliothèques boost.
C'est facile. Suffit d'utiliser "bootstrap.chauve-souris gcc" pour sélectionner GCC
Donc... la première partie du problème a été résolu par André suggestion.
La deuxième partie a été résolu en définissant la variable BOOST_FILESYSTEM_VERSION à 3 partout (l'erreur ci-dessus se plaint d'une incompatibilité avec ce qui est défini dans le fichier
user.hpp
). Bien que ce n'est pas l'option par défaut pour Boost 1.45 que j'utilise, c'est la seule chose qui fonctionne (c'est à dire bjam veut compiler la version 3 n'importe quoi). Alors maintenant, j'ai la version 3 du système de fichiers de la bibliothèque, et la version 2 pour tous les autres, mais qui ne semble pas être un problème pour le moment.J'ai un problème avec l'utilisation de Boost avec OpenCV et modes Propres bibliothèques,... le défi 😉
Puisque je ne peux pas commenter encore, je tiens à ajouter que j'ai couru
pour générer b2 correctement, puis
Le comprend sera situé à votre boost dossier racine (boost_1_58_00/boost) et vos fichiers binaires dans le dossier de création.