Je ne sais pas comment construire Boost avec les compilateurs C++0x. Quelle option doit être donnée à bjam ? Faut-il modifier le fichier user.config ? Quelqu'un peut-il m'aider ?
Le meilleur, Vicente
Je ne sais pas comment construire Boost avec les compilateurs C++0x. Quelle option doit être donnée à bjam ? Faut-il modifier le fichier user.config ? Quelqu'un peut-il m'aider ?
Le meilleur, Vicente
J'ai trouvé la réponse. J'attendais une fonction comme 'std' et je l'appelle comme suit :
bjam std=0x
mais actuellement nous devons utiliser les variables de bas niveau cxxflags et ajouter les drapeaux spécifiques du compilateur. Par exemple, pour gcc, nous pouvons faire
bjam toolset=gcc cxxflags=-std=gnu++0x
D'autres compilateurs auront besoin d'un paramètre différent.
En attendant une nouvelle fonctionnalité de Boost.Build, vous pouvez également définir votre propre jeu d'outils comme suit : Ajoutez le fichier user.config ou site.config
using gcc
: std0x
: "/usr/bin/g++" # your path to the C++0x compiler
: <cxxflags>-std=gnu++0x
;
Et maintenant, appelez comme
bjam toolset=gcc-std0x
Utilisez quelque chose comme ça :
./bootstrap.sh --with-toolset=gcc --prefix=/usr/local
./b2 -j12 toolset=gcc variant=release link=shared threading=multi address-model=64 cxxflags=-std=c++11 install
Le -j12 est pour la construction parallèle (12 threads). utiliser -std=c++11
pour une meilleure compatibilité et -std=gnu++11
pour les extensions gnu (seulement pour gcc)
si boost::mpi n'est pas construit (voir la sortie de la commande ci-dessus) -> éditer le fichier user-config.jam
si vous voulez construire seulement certains composants : ajouter :
--with-libraries=system,thread,serialization
par exemple
Voici un script adapté de mon cadre de travis (ajuster ROOT_PATH
) :
BOOST_DOWNLOAD_URL="http://sourceforge.net/projects/boost/files/boost/1.58.0/boost_1_58_0.tar.bz2/download"
BOOST_BUILD=${ROOT_PATH}/boostBuild
mkdir -p ${BOOST_BUILD}
wget --no-verbose --output-document="${ROOT_PATH}/boost.tar.bz2" "$BOOST_DOWNLOAD_URL"
cd ${BOOST_BUILD}
tar jxf "${ROOT_PATH}/boost.tar.bz2" --strip-components=1 -C "${BOOST_BUILD}"
./bootstrap.sh --with-toolset=gcc --with-libraries=system,thread,serialization,filesystem,chrono,atomic,date_time
sudo ./b2 -j12 toolset=gcc threading=multi link=shared release install
qui s'installe dans /usr/local
.
Je suis tombé sur un article pour compiler Boost en utilisant clang : http://blog.llvm.org/2010/05/clang-builds-boost.html . Il est peut-être possible d'adapter les changements proposés pour compiler Boost à l'aide de Boost.Jam à votre compilateur C++0x préféré.
En outre, vous pouvez changer les drapeaux de compilation pour un fichier comme ça :
exe test : test.cpp : <cxxflags>-std=gnu++0x ;
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.