web-dev-qa-db-ja.com

システムのBoostバージョンを確認する方法は?

システム上のBoost C++ライブラリのバージョンをすばやく確認する方法はありますか?

130
Jan Deinhard

ブースト情報マクロ 。必要なもの:BOOST_VERSION

88
AraK

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;

出力:Boost 1.51.0を使用

Boostバージョン1.51.0〜1.65.0でテスト済み

65
Vertexwahn

自分の情報だけを知る必要がある場合は、/ usr/include/boost/version.hpp(Ubuntu 13.10)を見て、情報を直接読んでください。

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

更新:答えは修正されました。

41
hkaiser

Boostのインストール方法と実行しているOSに応じて、以下を試すこともできます。

dpkg -s libboost-dev | grep 'Version'
10
P-M

Homebrewを使用してOS XにインストールされたBoostでは、version.hpp/usr/local/Cellar/boost/<version>/include/boost/version.hppファイルが必要です(バージョンは既にパスに記載されていることに注意してください)。

UNIXライクなシステムでバージョンを判断する最も速い方法は、/usrboostを検索することです。

find /usr -name "boost"

5
Kamil S Jaron

私にとっては、最初に(バージョン変数がどこにあるかを知っていれば、バージョン変数がその中にあるversion.hppを見つけることができます(ubuntuでは通常/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.

私に関しては、システムに2つのバージョンブーストがインストールされています。以下のように出力します。

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"
2
Jayhello

bashでブーストバージョン番号を見つけるのに苦労しました。

エラーを抑制して、バージョンコードを変数に保存する次のことをしました。これは、受け入れられた回答のコメントでmaxschlepzigの例を使用しています。 (コメントできない、50 Repを持っていない)

これはかなり前に回答されていることを知っています。しかし、どこでもbashでそれを行う方法を見つけることができませんでした。だから、これは同じ問題を抱えている人を助けるかもしれないと思った。また、これは、コイラーがそれを見つけることができる限り、ブーストがどこにインストールされていても機能するはずです。また、複数のバージョンがインストールされている場合に、コイラーが実際に使用するバージョン番号を提供します。

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

すでに答えられているかもしれませんが、このシンプルなプログラムを試して、ブーストのインストールの有無とそのインストールを確認できます。

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