Se você quiser descobrir isso manualmente (em vez de no código), vá para o diretório de inclusão e abra version.hpp. BOOST_VERSIONleva um pouco de decifração, mas BOOST_LIB_VERSIONé bastante claro. O valor do meu é atualmente"1_42"
TED
4
No linux, o uso de "ldd yourprogramname" geralmente mostra qual versão do boost foi vinculada ao seu programa (que tem a possibilidade de indicar uma diferença do cabeçalho, embora seja improvável que seja diferente).
precisa saber é o seguinte
10
Também no linux,dpkg -S /usr/include/boost/version.hpp
Efreeto 29/04
8
Você pode rapidamente olhar para cima o valor atual através, por exemplo echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -x c++ -E -- por exemplo, no Fedora 26: 106.300 (ou seja 1,63)
maxschlepzig
69
Testado com o impulso 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;
Para quebrar a sequência de @Vertexwahn: Funciona também com 1.60.0 e 1.61.0 .
M8mble 07/07/19
4
@Vertexwahn Eles devem contratá-lo para qualquer tipo de alteração de versão.
PascalVKooten
14
Por que você não atualiza sua resposta com algo como: 'Funciona com todas as versões do Boost (versão testada 1.51 a 1.63)'. - em vez de sobrecarregar a seção de comentários ...
maxschlepzig
62
Se você só precisa saber suas próprias informações, basta olhar em /usr/include/boost/version.hpp (Ubuntu 13.10) e ler as informações diretamente
Por que não apenas std::cout << "Boost version: " << BOOST_LIB_VERSION;:?
TED
6
A execução deste código emitido "versão Boost: 0.199.60", enquanto a versão de TED emitidas "versão Boost: 1_48"
Homer6
5
Isso não funciona. Por que alguém votaria nisso? Alguém realmente executou esse código e obteve uma saída útil? Eu acho que as pessoas veem "hexadecimal" e acham que deve estar correto.
JDiMatteo 9/10
1
Isso não está correto. A versão Boost é armazenada decimalmente, não hexagonalmente.
É libboost-devo mesmo que "impulso"? Porque eu tenho muito, /usr/include/boostmas seu comando cede is not installed.
Ben Ben
7
O impulso instalado no OS X usando o homebrew tem o version.hpparquivo desejado /usr/local/Cellar/boost/<version>/include/boost/version.hpp(observe que a versão já foi mencionada no caminho).
Eu acho que a maneira mais rápida de determinar a versão em qualquer sistema semelhante ao UNIX será procurar boostem /usr:
Quanto a mim, você pode primeiro (encontrar version.hpp, a variável version está nela, se você souber onde está (no ubuntu, normalmente, /usr/include/boost/version.hpppor instalação padrão)):
Quanto a mim, tenho duas versões de reforço instaladas no meu sistema. Saída como abaixo:
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 versão 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"
Eu tentei descobrir o número da versão do impulso no bash .
Acabou fazendo o seguinte, que armazena o código da versão em uma variável, suprimindo os erros. Isso usa o exemplo de maxschlepzig nos comentários da resposta aceita. (Não pode comentar, não possui 50 representantes)
Eu sei que isso foi respondido há muito tempo. Mas não consegui encontrar como fazê-lo no bash em qualquer lugar. Então, pensei que isso poderia ajudar alguém com o mesmo problema. Além disso, isso deve funcionar, não importa onde o impulso esteja instalado, desde que o comiler possa encontrá-lo. E ele fornecerá o número da versão que é usada de forma aguda pelo compilador, quando você tiver várias versões instaladas.
BOOST_VERSION
leva um pouco de decifração, masBOOST_LIB_VERSION
é bastante claro. O valor do meu é atualmente"1_42"
dpkg -S /usr/include/boost/version.hpp
echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -x c++ -E -
- por exemplo, no Fedora 26: 106.300 (ou seja 1,63)Testado com o impulso 1.51.0:
Saída: Usando o Boost 1.51.0
Testado com versões de aumento 1.51.0 a 1.65.0
fonte
Se você só precisa saber suas próprias informações, basta olhar em /usr/include/boost/version.hpp (Ubuntu 13.10) e ler as informações diretamente
fonte
Atualização: a resposta foi corrigida.
fonte
std::cout << "Boost version: " << BOOST_LIB_VERSION;
:?Dependendo de como você instalou o boost e do sistema operacional em execução, você também pode tentar o seguinte:
fonte
libboost-dev
o mesmo que "impulso"? Porque eu tenho muito,/usr/include/boost
mas seu comando cedeis not installed
.O impulso instalado no OS X usando o homebrew tem o
version.hpp
arquivo desejado/usr/local/Cellar/boost/<version>/include/boost/version.hpp
(observe que a versão já foi mencionada no caminho).Eu acho que a maneira mais rápida de determinar a versão em qualquer sistema semelhante ao UNIX será procurar
boost
em/usr
:find /usr -name "boost"
fonte
Quanto a mim, você pode primeiro (encontrar version.hpp, a variável version está nela, se você souber onde está (no ubuntu, normalmente,
/usr/include/boost/version.hpp
por instalação padrão)):Segundo show, sua versão é por:
ou
Quanto a mim, tenho duas versões de reforço instaladas no meu sistema. Saída como abaixo:
Mostrar versão instalada local:
fonte
Eu tentei descobrir o número da versão do impulso no bash .
Acabou fazendo o seguinte, que armazena o código da versão em uma variável, suprimindo os erros. Isso usa o exemplo de maxschlepzig nos comentários da resposta aceita. (Não pode comentar, não possui 50 representantes)
Eu sei que isso foi respondido há muito tempo. Mas não consegui encontrar como fazê-lo no bash em qualquer lugar. Então, pensei que isso poderia ajudar alguém com o mesmo problema. Além disso, isso deve funcionar, não importa onde o impulso esteja instalado, desde que o comiler possa encontrá-lo. E ele fornecerá o número da versão que é usada de forma aguda pelo compilador, quando você tiver várias versões instaladas.
fonte
Outra maneira de obter a versão atual do impulso (Linux Ubuntu):
Ref: https://www.osetc.com/en/how-to-install-boost-on-ubuntu-16-04-18-04-linux.html
fonte
Se um impulso instalado no macOS via Homebrew, é provável que você veja as versões de impulso instaladas com:
fonte
Talvez você já tenha respondido, mas você pode tentar este programa simples para determinar se e qual instalação do boost você possui:
fonte