webentwicklung-frage-antwort-db.com.de

Wie kann ich die Boost-Version eines Systems ermitteln?

Gibt es eine schnelle Möglichkeit, die Version der Boost-C++ - Bibliotheken auf einem System zu ermitteln?

122
Jan Deinhard

Erhöhen Sie informative Makros . Sie benötigen: BOOST_VERSION

82
AraK

Getestet mit 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;

Ausgabe: Mit Boost 1.51.0

Getestet mit Boost-Versionen 1.51.0 bis 1.65.0

63
Vertexwahn

Wenn Sie nur zu Ihrer eigenen Information wissen müssen, schauen Sie einfach in /usr/include/boost/version.hpp (Ubuntu 13.10) und lesen Sie die Informationen direkt

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;
}

Update: Die Antwort wurde behoben. 

40
hkaiser

Je nachdem, wie Sie boost installiert haben und welches Betriebssystem Sie ausführen, können Sie auch Folgendes versuchen:

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

Boost, der unter OS X mit Homebrew installiert wurde, hat die gewünschte version.hpp-Datei in /usr/local/Cellar/boost/<version>/include/boost/version.hpp (Beachten Sie, dass die Version bereits im Pfad angegeben ist).

Ich denke, der schnellste Weg, die Version auf einem UNIX-ähnlichen System zu ermitteln, ist die Suche nach boost in /usr:

find /usr -name "boost"

3
Kamil S Jaron

Was mich betrifft, können Sie zuerst (finden Sie version.hpp die Versionsvariable darin, wenn Sie wissen, wo sie ist (in Ubuntu normalerweise /usr/include/boost/version.hpp standardmäßig installiert)):

 locate `boost/version.hpp`

Zweite Show ihre Version von:

 grep BOOST_LIB_VERSION /usr/include/boost/version.hpp

oder

  grep BOOST_VERSION /usr/include/boost/version.hpp.

Ich habe zwei Version Boost in meinem System installiert. Ausgabe wie folgt:

[email protected]:~$ 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

[email protected]:~$ 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
[email protected]:~$ 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"

Lokal installierte Version anzeigen:

[email protected]:~$ 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

Ich versuchte, die Boost-Versionsnummer in bash herauszufinden.

Am Ende wurde Folgendes ausgeführt, wobei der Versionscode in einer Variablen gespeichert wird, wodurch die Fehler unterdrückt werden. Dies verwendet das Beispiel von maxschlepzig in den Kommentaren der akzeptierten Antwort. (Kann nicht kommentieren, nicht 50 Rep haben)

Ich weiß, dass das schon vor langer Zeit beantwortet wurde. Aber ich konnte nirgendwo in bash finden, wie es geht. Ich dachte, das könnte jemandem mit dem gleichen Problem helfen. Dies sollte auch funktionieren, egal wo Boost installiert ist, solange der Comiler es finden kann. Sie erhalten die Versionsnummer, die vom Comiler tatsächlich verwendet wird, wenn Sie mehrere Versionen installiert haben. 

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

Möglicherweise bereits beantwortet, aber Sie können dieses einfache Programm ausprobieren, um festzustellen, ob und welche Installation von boost Sie haben: 

#include<boost/version.hpp>
#include<iostream>
using namespace std;
int main()
{
cout<<BOOST_VERSION<<endl;
return 0;
}
0
Haresh Karnan