Si vous voulez le découvrir manuellement (plutôt que dans le code), allez dans le répertoire include et ouvrez version.hpp. BOOST_VERSIONprend un peu de déchiffrement, mais BOOST_LIB_VERSIONc'est assez clair. La valeur du mien est actuellement de"1_42"
TED
4
Sous Linux, l'utilisation de "ldd yourprogramname" vous montrera souvent quelle version de boost était liée à votre programme (ce qui a la possibilité d'indiquer une différence par rapport à l'en-tête, bien qu'il soit peu probable que ce soit différent).
Homer6
10
Aussi sous linux,dpkg -S /usr/include/boost/version.hpp
Efreeto
8
Vous pouvez rechercher rapidement la valeur actuelle via par exemple echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -x c++ -E -- par exemple sur Fedora 26: 106300 (soit 1,63)
maxschlepzig
69
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;
Pour briser la séquence de @Vertexwahn: Fonctionne également avec 1.60.0 et 1.61.0 .
m8mble
4
@Vertexwahn Ils devraient vous embaucher pour tout type de changement de version.
PascalVKooten
14
Pourquoi ne pas simplement mettre à jour votre réponse avec quelque chose comme: "Fonctionne avec toutes les versions de Boost (version testée 1.51 à 1.63)." - au lieu de déborder la section des commentaires ...
maxschlepzig
62
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
Pourquoi pas simplement std::cout << "Boost version: " << BOOST_LIB_VERSION;:?
TED du
6
L'exécution de ce code a produit "Boost version: 0.199.60" alors que la version de TED a produit "Boost version: 1_48"
Homer6
5
Cela ne marche pas. Pourquoi quelqu'un voterait-il pour cela? Quelqu'un a-t-il réellement exécuté ce code et obtenu une sortie utile? Je suppose que les gens voient «hexadécimal» et pensent qu'il doit être correct.
JDiMatteo
1
Ce n'est pas correct. La version Boost est stockée de manière décimale et non hexagonale.
Maciek D.
1
Sauf que maintenant c'est la même chose que l'autre réponse ...
eis
13
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:
Est-ce libboost-devla même chose que "boost"? Parce que j'en ai beaucoup /usr/include/boostmais votre commande donne is not installed.
Ben le
7
Boost installé sur OS X en utilisant homebrew a le version.hppfichier 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 boostdans /usr:
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.hppinstallée par défaut)):
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.
BOOST_VERSION
prend un peu de déchiffrement, maisBOOST_LIB_VERSION
c'est assez clair. La valeur du mien est actuellement de"1_42"
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:
Sortie: Utilisation de Boost 1.51.0
Testé avec les versions boost 1.51.0 à 1.65.0
la source
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
la source
Mise à jour: la réponse a été corrigée.
la source
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:
la source
libboost-dev
la même chose que "boost"? Parce que j'en ai beaucoup/usr/include/boost
mais votre commande donneis 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"
la source
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)):Deuxième émission, c'est la version par:
ou
Quant à moi, j'ai deux versions boost installées dans mon système. Sortie comme ci-dessous:
Afficher la version installée localement:
la source
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.
la source
Une autre façon d'obtenir la version actuelle de boost (Linux Ubuntu):
Réf: https://www.osetc.com/en/how-to-install-boost-on-ubuntu-16-04-18-04-linux.html
la source
Si un boost installé sur macOS via Homebrew, on verra probablement la (les) version (s) boost installée (s) avec:
la source
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:
la source