Existe-t-il un moyen rapide de déterminer la version des bibliothèques Boost C ++ sur un système?
Existe-t-il un moyen rapide de déterminer la version des bibliothèques Boost C ++ sur un système?
Réponses:
Boostez les macros d'information . Vous avez besoin:BOOST_VERSION
dpkg -S /usr/include/boost/version.hpp
echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -x c++ -E -
- par exemple sur Fedora 26: 106300 (soit 1,63)
Testé avec boost 1.51.0:
std::cout << "Using Boost "
<< BOOST_VERSION / 100000 << "." // major version
<< BOOST_VERSION / 100 % 1000 << "." // minor version
<< BOOST_VERSION % 100 // patch level
<< std::endl;
Sortie: Utilisation de Boost 1.51.0
Testé avec les versions boost 1.51.0 à 1.65.0
Si vous avez seulement besoin de savoir pour votre propre information, il suffit de regarder dans /usr/include/boost/version.hpp (Ubuntu 13.10) et de lire les informations directement
#include <boost/version.hpp>
#include <iostream>
#include <iomanip>
int main()
{
std::cout << "Boost version: "
<< BOOST_VERSION / 100000
<< "."
<< BOOST_VERSION / 100 % 1000
<< "."
<< BOOST_VERSION % 100
<< std::endl;
return 0;
}
Mise à jour: la réponse a été corrigée.
std::cout << "Boost version: " << BOOST_LIB_VERSION;
:?
En fonction de la façon dont vous avez installé boost et du système d'exploitation que vous utilisez, vous pouvez également essayer ce qui suit:
dpkg -s libboost-dev | grep 'Version'
libboost-dev
la même chose que "boost"? Parce que j'en ai beaucoup /usr/include/boost
mais votre commande donne is not installed
.
Boost installé sur OS X en utilisant homebrew a le version.hpp
fichier souhaité dans /usr/local/Cellar/boost/<version>/include/boost/version.hpp
(notez que la version est déjà mentionnée dans le chemin).
Je suppose que le moyen le plus rapide de déterminer la version sur tout système de type UNIX sera de rechercher boost
dans /usr
:
find /usr -name "boost"
Quant à moi, vous pouvez d'abord (trouver version.hpp la variable de version est dedans, si vous savez où elle se trouve (dans ubuntu, elle est généralement /usr/include/boost/version.hpp
installée par défaut)):
locate `boost/version.hpp`
Deuxième émission, c'est la version par:
grep BOOST_LIB_VERSION /usr/include/boost/version.hpp
ou
grep BOOST_VERSION /usr/include/boost/version.hpp.
Quant à moi, j'ai deux versions boost installées dans mon système. Sortie comme ci-dessous:
xy@xy:~$ locate boost/version.hpp |grep boost
/home/xy/boost_install/boost_1_61_0/boost/version.hpp
/home/xy/boost_install/lib/include/boost/version.hpp
/usr/include/boost/version.hpp
xy@xy:~$ grep BOOST_VERSION /usr/include/boost/version.hpp
#ifndef BOOST_VERSION_HPP
#define BOOST_VERSION_HPP
// BOOST_VERSION % 100 is the patch level
// BOOST_VERSION / 100 % 1000 is the minor version
// BOOST_VERSION / 100000 is the major version
#define BOOST_VERSION 105800
// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
# or this way more readable
xy@xy:~$ grep BOOST_LIB_VERSION /usr/include/boost/version.hpp
// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
#define BOOST_LIB_VERSION "1_58"
Afficher la version installée localement:
xy@xy:~$ grep BOOST_LIB_VERSION /home/xy/boost_install/lib/include/boost/version.hpp
// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
#define BOOST_LIB_VERSION "1_61"
Je me suis demandé le numéro de version du boost dans bash .
J'ai fini par faire ce qui suit, qui stocke le code de version dans une variable, supprimant les erreurs. Ceci utilise l'exemple de maxschlepzig dans les commentaires de la réponse acceptée. (Je ne peux pas commenter, je n'ai pas 50 représentants)
Je sais que cela a été répondu il y a longtemps. Mais je n'ai pas trouvé comment le faire en bash nulle part. J'ai donc pensé que cela pourrait aider quelqu'un avec le même problème. Cela devrait également fonctionner quel que soit l'endroit où Boost est installé, tant que le comilateur peut le trouver. Et il vous donnera le numéro de version qui est réellement utilisé par le comilateur, lorsque plusieurs versions sont installées.
{
VERS=$(echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -s -x c++ -E - | grep "^[^#;]")
} &> /dev/null
Une autre façon d'obtenir la version actuelle de boost (Linux Ubuntu):
~$ dpkg -s libboost-dev | grep Version
Version: 1.58.0.1ubuntu1
Réf: https://www.osetc.com/en/how-to-install-boost-on-ubuntu-16-04-18-04-linux.html
Peut-être avez-vous déjà une réponse, mais vous pouvez essayer ce programme simple pour déterminer si et quelle installation de boost vous avez:
#include<boost/version.hpp>
#include<iostream>
using namespace std;
int main()
{
cout<<BOOST_VERSION<<endl;
return 0;
}
BOOST_VERSION
prend un peu de déchiffrement, maisBOOST_LIB_VERSION
c'est assez clair. La valeur du mien est actuellement de"1_42"