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


回答:


97

情報マクロを後押しします。必要なもの:BOOST_VERSION


76
(コード内ではなく)手動で計算する場合は、インクルードディレクトリに移動し、version.hppを開きます。BOOST_VERSION少し解読しますが、BOOST_LIB_VERSIONかなり明確です。私の価値は現在"1_42"
TED

4
Linuxでは、「ldd yourprogramname」を使用すると、プログラムにリンクされたboostのバージョンが表示されます(ヘッダーとの違いを示す可能性がありますが、異なる可能性はほとんどありません)。
Homer6 2013

10
また、Linuxではdpkg -S /usr/include/boost/version.hpp
Efreeto

8
echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -x c++ -E -たとえば、Fedora 26:106300(つまり1.63)で現在の値をすばやく調べることができます
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 2016

4
@Vertexwahnあらゆる種類のリリースの変更を採用する必要があります。
PascalVKooten 2016

14
「すべてのBoostバージョンで動作します(テスト済みのバージョン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
このコードを実行すると「Boostバージョン:0.199.60」が出力されましたが、TEDのバージョンでは「Boostバージョン:1_48」が出力されました
Homer6

5
これは機能しません。なぜ誰かがこれに賛成するのですか?誰かが実際にこのコードを実行して有用な出力を得ていますか?人々は「hex」を見て、それが正しいに違いないと考えていると思います。
JDiMatteo 2014年

1
これは正しくありません。ブーストバージョンは、六角形ではなく10進数で保存されます。
Maciek D. 2015

1
今を除いて、それは他の答えと同じです...
eis

13

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

dpkg -s libboost-dev | grep 'Version'

である libboost-dev「ブースト」と同じ?私はたくさんいるのです/usr/include/boostが、あなたのコマンドが与えるのis not installedです。
ベン

7

homebrewを使用してOS XにインストールされたBoostには、目的のversion.hppファイルが含まれています/usr/local/Cellar/boost/<version>/include/boost/version.hpp(バージョンはすでにパスに記載されています)。

UNIXライクなシステムでバージョンを確認する最も速い方法はboost/usr次の場所を検索することだと思います。

find /usr -name "boost"


4

私に関しては、最初にそれができます(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"

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>を使用します。
ハッシュロック


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.