Wenn Sie es manuell herausfinden möchten (anstatt im Code), gehen Sie zum Include-Verzeichnis und öffnen Sie version.hpp. BOOST_VERSIONbraucht ein bisschen Entschlüsselung, ist aber BOOST_LIB_VERSIONziemlich klar. Der Wert von mir ist derzeit"1_42"
TED
4
Unter Linux zeigt die Verwendung von "ldd yourprogramname" häufig an, welche Version von boost mit Ihrem Programm verknüpft wurde (was die Möglichkeit bietet, einen Unterschied zum Header anzuzeigen, obwohl es unwahrscheinlich ist, dass er sich unterscheidet).
Homer6
10
Auch in Linux,dpkg -S /usr/include/boost/version.hpp
Efreeto
8
Sie können den aktuellen Wert schnell nachschlagen, z. echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -x c++ -E -B. über Fedora 26: 106300 (dh 1,63)
maxschlepzig
69
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
Um @Vertexwahns Streifen zu brechen: Funktioniert auch mit 1.60.0 und 1.61.0 .
m8mble
4
@Vertexwahn Sie sollten Sie für jede Art von Release-Änderungen einstellen.
PascalVKooten
14
Warum aktualisieren Sie Ihre Antwort nicht einfach mit etwas wie: "Funktioniert mit allen Boost-Versionen (getestete Version 1.51 bis 1.63)." - anstatt den Kommentarbereich zu überlaufen ...
maxschlepzig
62
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
Beim Ausführen dieses Codes wurde "Boost-Version: 0.199.60" ausgegeben, während die TED-Version "Boost-Version: 1_48"
ausgab
5
Das funktioniert nicht. Warum sollte jemand dies befürworten? Hat jemand diesen Code tatsächlich ausgeführt und nützliche Ausgaben erhalten? Ich denke, die Leute sehen "hex" und denken, dass es korrekt sein muss.
JDiMatteo
1
Das ist nicht richtig. Die Boost-Version wird dezimal und nicht hexagonal gespeichert.
Ist libboost-devdas gleiche wie "Boost"? Weil ich viel drin habe, /usr/include/boostaber dein Befehl gibt is not installed.
Ben
7
Boost, das unter OS X mit Homebrew installiert wurde, hat die gewünschte version.hppDatei 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 boostin /usr:
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.hppstandardmäßig installiert)):
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.
Möglicherweise bereits beantwortet, aber Sie können dieses einfache Programm ausprobieren, um festzustellen, ob und welche Boost-Installation Sie haben:
BOOST_VERSION
braucht ein bisschen Entschlüsselung, ist aberBOOST_LIB_VERSION
ziemlich klar. Der Wert von mir ist derzeit"1_42"
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:
Ausgabe: Verwenden von Boost 1.51.0
Getestet mit den Boost-Versionen 1.51.0 bis 1.65.0
quelle
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
quelle
Update: Die Antwort wurde behoben.
quelle
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:
quelle
libboost-dev
das gleiche wie "Boost"? Weil ich viel drin habe,/usr/include/boost
aber dein Befehl gibtis 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"
quelle
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)):Die zweite Show ist die Version von:
oder
Ich habe zwei Versions-Boosts in meinem System installiert. Ausgabe wie folgt:
Lokal installierte Version anzeigen:
quelle
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.
quelle
Eine andere Möglichkeit, die aktuelle Boost-Version (Linux Ubuntu) zu erhalten:
Ref: https://www.osetc.com/de/how-to-install-boost-on-ubuntu-16-04-18-04-linux.html
quelle
Wenn Sie einen Boost unter macOS über Homebrew installiert haben, sehen Sie wahrscheinlich die installierten Boost-Versionen mit:
quelle
Möglicherweise bereits beantwortet, aber Sie können dieses einfache Programm ausprobieren, um festzustellen, ob und welche Boost-Installation Sie haben:
quelle