Answers:
提高信息宏。你需要:BOOST_VERSION
dpkg -S /usr/include/boost/version.hpp
echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -x c++ -E -
-Fedora 26:106300(ie 1.63)
经过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
#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;
}
更新:答案已修复。
std::cout << "Boost version: " << BOOST_LIB_VERSION;
?
使用自制软件安装在OS X上的Boost中包含所需的version.hpp
文件/usr/local/Cellar/boost/<version>/include/boost/version.hpp
(请注意,该路径已在路径中提到)。
我想,以确定任何UNIX类系统上的版本将是搜索的最快方法boost
中/usr
:
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.
对于我来说,我的系统中安装了两个版本提升。输出如下:
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中的boost版本号。
最终完成了以下操作,该操作将版本代码存储在变量中,以防止出现错误。这将使用maxschlepzig中的示例作为接受答案的注释。(无法发表评论,没有50个代表)
我知道这个问题早已得到解决。但是我找不到在任何地方用bash进行操作的方法。因此,我认为这可能会对遇到相同问题的人有所帮助。无论在何处安装boost,只要编译器可以找到它,它都应该起作用。当您安装了多个版本时,它将为您提供编译器手动使用的版本号。
{
VERS=$(echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -s -x c++ -E - | grep "^[^#;]")
} &> /dev/null
获取当前增强版本的另一种方法(Linux Ubuntu):
~$ dpkg -s libboost-dev | grep Version
Version: 1.58.0.1ubuntu1
参考:https : //www.osetc.com/en/how-to-install-boost-on-ubuntu-16-04-18-04-linux.html
可能已经回答了,但是您可以尝试使用这个简单的程序来确定是否安装了boost以及安装了什么:
#include<boost/version.hpp>
#include<iostream>
using namespace std;
int main()
{
cout<<BOOST_VERSION<<endl;
return 0;
}
BOOST_VERSION
需要一些解密,但BOOST_LIB_VERSION
很清楚。目前,我的价值是"1_42"