Как определить версию Boost в системе?

есть ли быстрый способ определить версию библиотек Boost C++ в системе?

8 ответов



протестировано с 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;
}

Update: ответ был исправлен.


в зависимости от того, как вы установили boost и какую ОС вы используете, вы также можете попробовать следующее:

dpkg -s libboost-dev | grep 'Version'

Boost установлен на OS X с помощью homebrew пожелал на /usr/local/Cellar/boost/<version>/include/boost/version.hpp (обратите внимание, что версия уже упомянута в path).

Я думаю, что самый быстрый способ определить версию на любой UNIX-подобной системе будет искать boost на /usr:

find /usr -name "boost"


может быть уже ответили, но вы можете попробовать эту простую программу, чтобы определить, если и какая установка boost у вас есть:

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

Что касается меня, вы можете сначала (найти версию.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.

что касается меня, у меня есть две версии boost, установленные в моей системе. Вывод, как показано ниже:

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"