Gibt es eine schnelle Möglichkeit, die Version der Boost C ++ - Bibliotheken auf einem System zu ermitteln?
Gibt es eine schnelle Möglichkeit, die Version der Boost C ++ - Bibliotheken auf einem System zu ermitteln?
Antworten:
Informationsmakros verbessern . Du brauchst:BOOST_VERSION
dpkg -S /usr/include/boost/version.hpp
echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -x c++ -E -
B. über Fedora 26: 106300 (dh 1,63)
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: Verwenden von Boost 1.51.0
Getestet mit den Boost-Versionen 1.51.0 bis 1.65.0
Wenn Sie nur Ihre eigenen Informationen benötigen, schauen Sie einfach in /usr/include/boost/version.hpp (Ubuntu 13.10) nach und lesen Sie die Informationen direkt
#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.
std::cout << "Boost version: " << BOOST_LIB_VERSION;
?
Abhängig davon, wie Sie Boost installiert haben und welches Betriebssystem Sie ausführen, können Sie auch Folgendes versuchen:
dpkg -s libboost-dev | grep 'Version'
libboost-dev
das gleiche wie "Boost"? Weil ich viel drin habe, /usr/include/boost
aber dein Befehl gibt is not installed
.
Boost, das 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 erwähnt ist).
Ich denke, der schnellste Weg, um die Version auf einem UNIX-ähnlichen System zu bestimmen, ist die Suche boost
in /usr
:
find /usr -name "boost"
Was mich betrifft, können Sie zuerst (finden Sie version.hpp, in der sich die Versionsvariable befindet, wenn Sie wissen, wo sie sich befindet (in Ubuntu normalerweise /usr/include/boost/version.hpp
standardmäßig installiert)):
locate `boost/version.hpp`
Die zweite Show ist die Version von:
grep BOOST_LIB_VERSION /usr/include/boost/version.hpp
oder
grep BOOST_VERSION /usr/include/boost/version.hpp.
Ich habe zwei Versions-Boosts in meinem System installiert. Ausgabe wie folgt:
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"
Lokal installierte Version anzeigen:
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"
Ich habe mich bemüht, die Boost-Versionsnummer in Bash herauszufinden .
Am Ende wurde Folgendes ausgeführt, wodurch der Versionscode in einer Variablen gespeichert und die Fehler unterdrückt wurden. Dies verwendet das Beispiel von maxschlepzig in den Kommentaren der akzeptierten Antwort. (Kann nicht kommentieren, habe keine 50 Wiederholungen)
Ich weiß, dass dies vor langer Zeit beantwortet wurde. Aber ich konnte nirgendwo in Bash finden, wie es geht. Also dachte ich, das könnte jemandem mit dem gleichen Problem helfen. Dies sollte auch funktionieren, egal wo Boost installiert ist, solange der Comiler es finden kann. Und es gibt Ihnen 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
Eine andere Möglichkeit, die aktuelle Boost-Version (Linux Ubuntu) zu erhalten:
~$ dpkg -s libboost-dev | grep Version
Version: 1.58.0.1ubuntu1
Ref: https://www.osetc.com/de/how-to-install-boost-on-ubuntu-16-04-18-04-linux.html
Möglicherweise bereits beantwortet, aber Sie können dieses einfache Programm ausprobieren, um festzustellen, ob und welche Boost-Installation Sie haben:
#include<boost/version.hpp>
#include<iostream>
using namespace std;
int main()
{
cout<<BOOST_VERSION<<endl;
return 0;
}
BOOST_VERSION
braucht ein bisschen Entschlüsselung, ist aberBOOST_LIB_VERSION
ziemlich klar. Der Wert von mir ist derzeit"1_42"