2010-09-14 1995 views

回答

77

Boost Informational Macros。您需要:BOOST_VERSION

+68

如果您想要手工计算出它(而不是代码内),则转至include目录,然后打开version.hpp。 'BOOST_VERSION'需要一点解密,但是'BOOST_LIB_VERSION'很清楚。我的价值目前是''1_42'' – 2010-09-14 12:44:47

+4

在linux中,使用“ldd yourprogramname”会经常显示哪个版本的boost与您的程序相关联(可能会指出与头部有所不同,尽管它不太可能是不同的)。 – Homer6 2013-08-21 21:36:21

+7

同样在linux下,'dpkg -S/usr/include/boost/version.hpp' – Efreeto 2016-04-29 17:13:50

37
#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;'? – 2010-09-14 12:46:30

+6

运行此代码输出“Boost版本:0.199.60”,而T.E.D.的版本输出“Boost版本:1_48” – Homer6 2013-08-21 21:20:32

+5

这是行不通的。为什么会有人赞成呢?有没有人真的运行这个代码并获得有用的输出?我想人们看到“十六进制”,并认为它必须是正确的。 – JDiMatteo 2014-10-09 22:24:28

58

测试与升压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

+10

作品还具有提升1.52.0 – Vertexwahn 2012-12-21 02:53:07

+10

作品还具有提升1.53.0 – Vertexwahn 2013-03-06 18:41:19

+11

作品也随着提升1.54.0 – Vertexwahn 2013-09-30 11:44:48

41

如果你只需要知道为了您自己的信息,只需查看/usr/include/boost/version.hpp(Ubuntu 13.10)并直接阅读信息

1

使用自制软件安装在OS X上的Boost具有所需的version.hpp文件在/usr/local/Cellar/boost/<version>/include/boost/version.hpp(注意,该版本已在路径中提及)。

我想,以确定任何UNIX类系统上的版本将是搜索boost/usr最快的方法:

find /usr -name "boost"

6

根据您如何安装升压和什么操作系统您正在运行你还可以尝试以下操作:

dpkg -s libboost-dev | grep 'Version' 
相关问题