Esiste un modo rapido per determinare la versione delle librerie Boost C ++ su un sistema?
Esiste un modo rapido per determinare la versione delle librerie Boost C ++ su un sistema?
Risposte:
Potenzia le macro informative . Hai bisogno:BOOST_VERSION
dpkg -S /usr/include/boost/version.hpp
echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -x c++ -E -
- ad esempio su Fedora 26: 106300 (ovvero 1,63)
Testato con 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;
Output: utilizzando Boost 1.51.0
Testato con le versioni boost da 1.51.0 a 1.65.0
Se hai solo bisogno di sapere le tue informazioni, guarda in /usr/include/boost/version.hpp (Ubuntu 13.10) e leggi le informazioni direttamente
#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;
}
Aggiornamento: la risposta è stata corretta.
std::cout << "Boost version: " << BOOST_LIB_VERSION;
:?
Boost installato su OS X usando homebrew ha desiderato il version.hpp
file in /usr/local/Cellar/boost/<version>/include/boost/version.hpp
(nota che la versione è già menzionata nel percorso).
Immagino che il modo più veloce per determinare la versione su qualsiasi sistema simile a UNIX sarà quello di cercare boost
in /usr
:
find /usr -name "boost"
Per quanto mi riguarda, puoi prima (trovare version.hpp la variabile versione è in essa, se sai dove si trova (in Ubuntu di solito in /usr/include/boost/version.hpp
per impostazione predefinita)):
locate `boost/version.hpp`
Secondo spettacolo è la versione di:
grep BOOST_LIB_VERSION /usr/include/boost/version.hpp
o
grep BOOST_VERSION /usr/include/boost/version.hpp.
Per quanto mi riguarda, ho due boost di versione installati nel mio sistema. Uscita come di seguito:
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"
Mostra versione installata 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"
Ho tentato di scoprire il numero di versione boost in bash .
Finì per fare quanto segue, che memorizza il codice della versione in una variabile, eliminando gli errori. Questo utilizza l'esempio di maxschlepzig nei commenti della risposta accettata. (Non posso commentare, non ho 50 Rep)
So che è stato risposto molto tempo fa. Ma non sono riuscito a trovare il modo di farlo in bash da nessuna parte. Quindi ho pensato che questo potesse aiutare qualcuno con lo stesso problema. Anche questo dovrebbe funzionare indipendentemente da dove sia installato boost, purché il comiler riesca a trovarlo. E ti darà il numero di versione che viene usato abitualmente dal comiler, quando hai più versioni installate.
{
VERS=$(echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -s -x c++ -E - | grep "^[^#;]")
} &> /dev/null
Un altro modo per ottenere l'attuale versione boost (Linux Ubuntu):
~$ dpkg -s libboost-dev | grep Version
Version: 1.58.0.1ubuntu1
Rif: https://www.osetc.com/en/how-to-install-boost-on-ubuntu-16-04-18-04-linux.html
Potrebbe già avere una risposta, ma puoi provare questo semplice programma per determinare se e quale installazione di boost hai:
#include<boost/version.hpp>
#include<iostream>
using namespace std;
int main()
{
cout<<BOOST_VERSION<<endl;
return 0;
}
BOOST_VERSION
richiede un po 'di decifrazione, maBOOST_LIB_VERSION
è abbastanza chiaro. Il mio valore è attualmente"1_42"