Si desea resolverlo manualmente (en lugar de en el código), vaya al directorio de inclusión y abra version.hpp. BOOST_VERSIONtoma un poco de desciframiento, pero BOOST_LIB_VERSIONes bastante claro. El valor de la mía es actualmente"1_42"
TED
44
En Linux, el uso de "ldd yourpronamename" a menudo le mostrará qué versión de boost estaba vinculada a su programa (que tiene la posibilidad de indicar una diferencia con respecto al encabezado, aunque es poco probable que sea diferente).
Homer6
10
También en Linux,dpkg -S /usr/include/boost/version.hpp
Efreeto
8
Puede buscar rápidamente el valor actual a través de echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -x c++ -E -, por ejemplo, por ejemplo, en Fedora 26: 106300 (es decir, 1.63)
maxschlepzig
69
Probado 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;
Salida: utilizando Boost 1.51.0
Probado con las versiones de impulso 1.51.0 a 1.65.0
Para romper la racha de @Vertexwahn: Funciona también con 1.60.0 y 1.61.0 .
m8mble
44
@Vertexwahn Deberían contratarlo para cualquier tipo de cambio de versión.
PascalVKooten
14
¿Por qué no actualiza su respuesta con algo como: "Funciona con todas las versiones de Boost (versión probada 1.51 a 1.63)". - en lugar de desbordar la sección de comentarios ...
maxschlepzig
62
Si solo necesita saber su propia información, solo busque en /usr/include/boost/version.hpp (Ubuntu 13.10) y lea la información directamente
¿Por qué no solo std::cout << "Boost version: " << BOOST_LIB_VERSION;:?
TED
66
La ejecución de este código generó "Versión de refuerzo: 0.199.60", mientras que la versión de TED generó "Versión de refuerzo: 1_48"
Homer6 el
55
Esto no funciona ¿Por qué alguien votaría esto? ¿Alguien ha ejecutado este código y ha obtenido resultados útiles? Supongo que la gente ve "hechizo" y cree que debe ser correcto.
JDiMatteo
1
Esto no es correcto. La versión de refuerzo se almacena decimalmente, no hexagonalmente.
¿Es libboost-devlo mismo que "impulsar"? Porque tengo mucho /usr/include/boostpero tu comando da is not installed.
Ben
7
Boost instalado en OS X usando homebrew tiene el version.hpparchivo deseado /usr/local/Cellar/boost/<version>/include/boost/version.hpp(tenga en cuenta que la versión ya se menciona en la ruta).
Supongo que la forma más rápida de determinar la versión en cualquier sistema similar a UNIX será buscar boosten /usr:
En cuanto a mí, primero puede (encontrar version.hpp, la variable de versión está en él, si sabe dónde está (en ubuntu, generalmente se /usr/include/boost/version.hppinstala por defecto):
En cuanto a mí, tengo dos versiones mejoradas instaladas en mi sistema. Salida de la siguiente manera:
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"
Mostrar versión instalada local:
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"
Me sorprendió encontrar el número de versión de impulso en bash .
Terminé haciendo lo siguiente, que almacena el código de versión en una variable, suprimiendo los errores. Esto utiliza el ejemplo de maxschlepzig en los comentarios de la respuesta aceptada. (No puedo comentar, no tengo 50 Rep)
Sé que esto ha sido respondido hace mucho tiempo. Pero no pude encontrar cómo hacerlo en bash en ningún lado. Entonces pensé que esto podría ayudar a alguien con el mismo problema. Además, esto debería funcionar sin importar dónde esté instalado boost, siempre que el comiler pueda encontrarlo. Y le dará el número de versión que el comiler usa de manera aguda, cuando tiene varias versiones instaladas.
BOOST_VERSION
toma un poco de desciframiento, peroBOOST_LIB_VERSION
es bastante claro. El valor de la mía es actualmente"1_42"
dpkg -S /usr/include/boost/version.hpp
echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -x c++ -E -
, por ejemplo, por ejemplo, en Fedora 26: 106300 (es decir, 1.63)Probado con boost 1.51.0:
Salida: utilizando Boost 1.51.0
Probado con las versiones de impulso 1.51.0 a 1.65.0
fuente
Si solo necesita saber su propia información, solo busque en /usr/include/boost/version.hpp (Ubuntu 13.10) y lea la información directamente
fuente
Actualización: la respuesta ha sido corregida.
fuente
std::cout << "Boost version: " << BOOST_LIB_VERSION;
:?Dependiendo de cómo haya instalado boost y qué sistema operativo esté ejecutando, también podría intentar lo siguiente:
fuente
libboost-dev
lo mismo que "impulsar"? Porque tengo mucho/usr/include/boost
pero tu comando dais not installed
.Boost instalado en OS X usando homebrew tiene el
version.hpp
archivo deseado/usr/local/Cellar/boost/<version>/include/boost/version.hpp
(tenga en cuenta que la versión ya se menciona en la ruta).Supongo que la forma más rápida de determinar la versión en cualquier sistema similar a UNIX será buscar
boost
en/usr
:find /usr -name "boost"
fuente
En cuanto a mí, primero puede (encontrar version.hpp, la variable de versión está en él, si sabe dónde está (en ubuntu, generalmente se
/usr/include/boost/version.hpp
instala por defecto):Segundo espectáculo es versión de:
o
En cuanto a mí, tengo dos versiones mejoradas instaladas en mi sistema. Salida de la siguiente manera:
Mostrar versión instalada local:
fuente
Me sorprendió encontrar el número de versión de impulso en bash .
Terminé haciendo lo siguiente, que almacena el código de versión en una variable, suprimiendo los errores. Esto utiliza el ejemplo de maxschlepzig en los comentarios de la respuesta aceptada. (No puedo comentar, no tengo 50 Rep)
Sé que esto ha sido respondido hace mucho tiempo. Pero no pude encontrar cómo hacerlo en bash en ningún lado. Entonces pensé que esto podría ayudar a alguien con el mismo problema. Además, esto debería funcionar sin importar dónde esté instalado boost, siempre que el comiler pueda encontrarlo. Y le dará el número de versión que el comiler usa de manera aguda, cuando tiene varias versiones instaladas.
fuente
Otra forma de obtener la versión actual de impulso (Linux Ubuntu):
Ref: https://www.osetc.com/en/how-to-install-boost-on-ubuntu-16-04-18-04-linux.html
fuente
Si un impulso instalado en macOS a través de Homebrew, es probable que vea las versiones de impulso instaladas con:
fuente
Es posible que ya se haya respondido, pero puede probar este sencillo programa para determinar si y qué instalación de impulso tiene:
fuente