システム上のBoost C++ライブラリのバージョンをすばやく確認する方法はありますか?
ブースト情報マクロ 。必要なもの:BOOST_VERSION
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でテスト済み
自分の情報だけを知る必要がある場合は、/ 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;
}
更新:答えは修正されました。
Boostのインストール方法と実行しているOSに応じて、以下を試すこともできます。
dpkg -s libboost-dev | grep 'Version'
Homebrewを使用してOS XにインストールされたBoostでは、version.hpp
に/usr/local/Cellar/boost/<version>/include/boost/version.hpp
ファイルが必要です(バージョンは既にパスに記載されていることに注意してください)。
UNIXライクなシステムでバージョンを判断する最も速い方法は、/usr
でboost
を検索することです。
find /usr -name "boost"
私にとっては、最初に(バージョン変数がどこにあるかを知っていれば、バージョン変数がその中にある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"
bashでブーストバージョン番号を見つけるのに苦労しました。
エラーを抑制して、バージョンコードを変数に保存する次のことをしました。これは、受け入れられた回答のコメントでmaxschlepzigの例を使用しています。 (コメントできない、50 Repを持っていない)
これはかなり前に回答されていることを知っています。しかし、どこでもbashでそれを行う方法を見つけることができませんでした。だから、これは同じ問題を抱えている人を助けるかもしれないと思った。また、これは、コイラーがそれを見つけることができる限り、ブーストがどこにインストールされていても機能するはずです。また、複数のバージョンがインストールされている場合に、コイラーが実際に使用するバージョン番号を提供します。
{
VERS=$(echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -s -x c++ -E - | grep "^[^#;]")
} &> /dev/null
すでに答えられているかもしれませんが、このシンプルなプログラムを試して、ブーストのインストールの有無とそのインストールを確認できます。
#include<boost/version.hpp>
#include<iostream>
using namespace std;
int main()
{
cout<<BOOST_VERSION<<endl;
return 0;
}