web-dev-qa-db-fra.com

Comment déterminer la version de Boost sur un système?

Existe-t-il un moyen rapide de déterminer la version des bibliothèques Boost C++ sur un système?

122
Jan Deinhard

Améliorez les macros d’information . Vous avez besoin de: BOOST_VERSION

82
AraK

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: en utilisant Boost 1.51.0

Testé avec les versions boost 1.51.0 à 1.65.0

63
Vertexwahn

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 directement les informations.

49
user1245262
#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. 

40
hkaiser

En fonction de la manière dont vous avez installé boost et du système d'exploitation utilisé, vous pouvez également procéder comme suit:

dpkg -s libboost-dev | grep 'Version'
8
P-M

Boost installé sur OS X en utilisant homebrew a le fichier version.hpp désiré dans /usr/local/Cellar/boost/<version>/include/boost/version.hpp (remarque, la version est déjà mentionnée dans le chemin).

Je suppose que le moyen le plus rapide de déterminer la version d'un système de type UNIX consiste à rechercher boost dans /usr:

find /usr -name "boost"

3
Kamil S Jaron

Pour moi, vous pouvez d’abord (trouver version.hpp, la variable de version y est, si vous savez où elle se trouve (dans Ubuntu, elle est généralement dans /usr/include/boost/version.hpp par défaut, installation)):

 locate `boost/version.hpp`

Deuxième spectacle sa 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 locale:

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"
2
Jayhello

Je suis tombé sur pour trouver le numéro de version boost dans bash .

A 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. (Vous ne pouvez pas commenter, vous n'avez pas 50 représentants)

Je sais que cela a été répondu il y a longtemps. Mais je ne trouvais pas comment le faire en bash n'importe où. J'ai donc pensé que cela pourrait aider quelqu'un avec le même problème. De plus, cela devrait fonctionner peu importe où boost est installé, tant que le comiler peut le trouver. Et cela vous donnera le numéro de version utilisé par le compilateur lorsque plusieurs versions sont installées. 

{
VERS=$(echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -s -x c++ -E - | grep "^[^#;]")
} &> /dev/null
0
JulianW

Peut-être déjà répondu, 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;
}
0
Haresh Karnan