development

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

big-blog 2020. 6. 30. 08:02
반응형

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


시스템에서 Boost C ++ 라이브러리의 버전을 확인하는 빠른 방법이 있습니까?


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


부스트 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으로 테스트


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


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

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


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

dpkg -s libboost-dev | grep 'Version'

homebrew를 사용하여 OS X에 설치된 Boost는 원하는 version.hpp파일을 가지고 있습니다 /usr/local/Cellar/boost/<version>/include/boost/version.hpp(버전은 이미 경로에 언급되어 있음).

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

find /usr -name "boost"


나에 관해서는, 먼저 (버전 변수가 어디에 있는지 알면 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"

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

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

I know this has been answered long time ago. But I couldn't find how to do it in bash anywhere. So I thought this might help someone with the same problem. Also this should work no matter where boost is installed, as long as the comiler can find it. And it will give you the version number that is acutally used by the comiler, when you have multiple versions installed.

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

Another way to get current boost version (Linux Ubuntu):

~$ dpkg -s libboost-dev | grep Version
Version: 1.58.0.1ubuntu1

Ref: https://www.osetc.com/en/how-to-install-boost-on-ubuntu-16-04-18-04-linux.html


Might be already answered, but you can try this simple program to determine if and what installation of boost you have :

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

참고URL : https://stackoverflow.com/questions/3708706/how-to-determine-the-boost-version-on-a-system

반응형