시스템에서 부스트 버전을 확인하는 방법은 무엇입니까?


답변:


97

정보 용 매크로 향상 . 당신이 필요합니다 :BOOST_VERSION


76
인 코드가 아닌 수동으로 파악하려면 include 디렉토리로 이동하여 version.hpp를여십시오. BOOST_VERSION약간의 해독이 필요하지만 BOOST_LIB_VERSION꽤 분명합니다. 내 가치는 현재"1_42"
TED

4
리눅스에서 "ldd yourprogramname"을 사용하면 프로그램에 어떤 버전의 부스트가 연결되어 있는지 보여줄 것입니다.
Homer6

10
리눅스에서도dpkg -S /usr/include/boost/version.hpp
Efreeto

8
당신은 신속 현재 값을 통해 예를 찾아 볼 수 있습니다 echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -x c++ -E -(예 : 1.63) 106300 : 페도라 26 일 - 예를 들어
maxschlepzig

69

부스트 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;

출력 : Boost 1.51.0 사용

부스트 버전 1.51.0에서 1.65.0으로 테스트


5
@Vertexwahn
Vishal Sharma

4
@Vertexwahn의 행진을 깨기 : 1.60.01.61.0 에서도 작동 합니다.
m8mble

4
@Vertexwahn 모든 종류의 릴리스 변경에 대해 고용해야합니다.
PascalVKooten

14
'모든 부스트 버전 (버전 1.51 ~ 1.63 테스트)에서 작동합니다.'와 같이 답변을 업데이트하지 마십시오. -코멘트 섹션을 오버플로하는 대신 ...
maxschlepzig

62

자신의 정보 만 알고 싶다면 /usr/include/boost/version.hpp(Ubuntu 13.10)를보고 정보를 직접 읽으십시오.


45
#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;
}

업데이트 : 답변이 수정되었습니다.


24
왜 안돼 std::cout << "Boost version: " << BOOST_LIB_VERSION;?
TED

6
이 코드를 실행하면 "부스트 버전 : 0.199.60"이 출력되는 반면, TED 버전은 "부스트 버전 : 1_48"이 출력되었습니다
Homer6

5
작동하지 않습니다. 왜 아무도 이것을 찬성했을까요? 실제로이 코드를 실행하고 유용한 출력을 얻은 사람이 있습니까? 사람들은 "16 진수"를보고 그것이 정확해야한다고 생각합니다.
JDiMatteo

1
이것은 정확하지 않습니다. 부스트 버전은 육각형이 아닌 십진법으로 저장됩니다.
Maciek D.

1
지금 은 다른 답변 과 똑같습니다 .
eis

13

boost를 설치 한 방법과 실행중인 OS에 따라 다음을 시도 할 수도 있습니다.

dpkg -s libboost-dev | grep 'Version'

libboost-dev는 "부스트"와 같은? 내가 많이 /usr/include/boost있지만 당신의 명령이 제공 하기 때문에 is not installed.
Ben

7

Homebrew를 사용하여 OS X에 설치된 Boost version.hpp/usr/local/Cellar/boost/<version>/include/boost/version.hpp (버전은 이미 경로에 언급되어 있음).

유닉스 계열 시스템에서 버전을 결정하는 가장 빠른 방법은 다음에서 검색하는 것 boost입니다 /usr.

find /usr -name "boost"


4

나에 관해서는, 먼저 (버전 변수가 어디에 있는지 알면 version.hpp 버전 변수를 찾을 수 있습니다 (우분투에서는 일반적 /usr/include/boost/version.hpp으로 기본 설치에 있음)) :

 locate `boost/version.hpp`

두 번째 버전은 다음과 같습니다.

 grep BOOST_LIB_VERSION /usr/include/boost/version.hpp

또는

  grep BOOST_VERSION /usr/include/boost/version.hpp.

내 시스템에 두 가지 버전 향상이 설치되어 있습니다. 아래와 같이 출력 :

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"

설치된 로컬 버전 표시 :

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"

3

bash 에서 부스트 버전 번호를 찾기 위해 기절했습니다. .

버전 코드를 변수에 저장하여 오류를 억제하는 다음을 수행했습니다. 이것은 허용 된 답변의 의견에 maxschlepzig의 예제를 사용합니다. (댓글을 달 수 없음, 담당자 50 명 없음)

나는 이것이 오래 전에 답변되었다는 것을 알고 있습니다. 그러나 나는 어디에서나 bash에서 어떻게 할 수 없었습니다. 그래서 이것이 같은 문제를 가진 사람에게 도움이 될 것이라고 생각했습니다. 또한 이것은 컴파일러가 찾을 수있는 한 부스트가 설치된 위치에 관계없이 작동해야합니다. 그리고 여러 버전이 설치된 경우 컴파일러에서 사용하는 버전 번호를 제공합니다.

{
VERS=$(echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -s -x c++ -E - | grep "^[^#;]")
} &> /dev/null

좋은 접근 방식과 마찬가지로 명시 적 경로 대신 <boost / version.hpp>를 사용합니다.
hashlock


0

Homebrew를 통해 macOS에 부스트를 설치 한 경우 다음과 같이 설치된 부스트 버전을 볼 수 있습니다.

ls /usr/local/Cellar/boost*

-1

이미 답변을 받았을 수도 있지만이 간단한 프로그램을 사용하여 부스트 설치 여부와 설치 여부를 결정할 수 있습니다.

#include<boost/version.hpp>
#include<iostream>
using namespace std;
int main()
{
cout<<BOOST_VERSION<<endl;
return 0;
}

8
그것은 이미 거의 10 년 전, 답, 당신은 분명 단순히이 페이지를 읽는 것을 볼 수 있습니다.
궤도에서 가벼움 경주
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.