Linux узнать версию boost

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

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

13 ответы

Если вы хотите выяснить это вручную (а не в коде), перейдите в каталог include и откройте version.hpp. BOOST_VERSION нужно немного расшифровать, но BOOST_LIB_VERSION довольно ясно. Моя ценность в настоящее время «1_42» — ТЕД

В Linux использование «ldd yourprogramname» часто показывает, какая версия повышения была связана с вашей программой (что может указывать на отличие от заголовка, хотя вряд ли оно будет другим). — Homer6

Также в linux, dpkg -S /usr/include/boost/version.hpp — Эфрито

Вы можете быстро найти текущее значение, например, echo -e ‘#include \nBOOST_VERSION’ | gcc -x c++ -E — — например, в Fedora 26: 106300 (т.е. 1.63) — Максшлепциг

Возможный результат: Использование Boost 1.75.0

Протестировано с Boost 1.51.0 до 1.63, 1.71.0 и 1.76.0:

Какая преданность, сэр @Vertexwahn — Вишал Шарма

Чтобы прервать серию @Vertexwahn: также работает с 1.60.0 и 1.61.0. — m8mble

@Vertexwahn Они должны нанять вас для любых изменений в выпуске. — Паскаль

Почему бы вам просто не обновить свой ответ чем-то вроде: «Работает со всеми версиями Boost (проверенная версия от 1.51 до 1.63)». — вместо того, чтобы переполнять раздел комментариев . — Максшлепциг

Если вам нужно знать только свою информацию, просто загляните в /usr/include/boost/version.hpp (Ubuntu 13.10) и прочтите информацию напрямую.

#include #include #include int main() < std::cout 

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

Запуск этого кода выдал «Boost version: 0.199.60», тогда как версия TED выдала «Boost version: 1_48» - Homer6

Это не работает. Почему кто-то проголосовал за это? Кто-нибудь действительно запускал этот код и получал полезный результат? Я полагаю, люди видят «шестнадцатеричный» и считают, что это правильно. - ДжейДиМаттео

Это не так. Версия Boost хранится в десятичном, а не в шестигранном формате. - Мацек Д.

Но сейчас это то же самое, что и другой ответ. - мороженое

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

dpkg -s libboost-dev | grep 'Version' 

Is libboost-dev так же, как "буст"? Потому что у меня много всего /usr/include/boost но ваша команда дает is not installed . - Бен

Boost, установленный на OS X с использованием homebrew, желал version.hpp файл в /usr/local/Cellar/boost//include/boost/version.hpp (обратите внимание, что версия уже указана в пути).

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

Что касается меня, вы можете сначала (найти version.hpp, переменная версии в нем, если вы знаете, где она находится (в ubuntu это обычно в /usr/include/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" 

Я изо всех сил пытался узнать номер версии повышения в колотить.

Закончил следующим, в котором код версии сохраняется в переменной, подавляя ошибки. Здесь используется пример из maxschlepzig в комментариях к принятому ответу. (Не могу комментировать, нет 50 Rep)

Я знаю, что на это давным-давно был дан ответ. Но я нигде не мог найти, как это сделать в bash. Поэтому я подумал, что это может помочь кому-то с той же проблемой. Также это должно работать независимо от того, где установлен boost, если компилятор может его найти. И он даст вам номер версии, который фактически используется компилятором, если у вас установлено несколько версий.

< VERS=$(echo -e '#include \nBOOST_VERSION' | gcc -s -x c++ -E - | grep "^[^#;]") > &> /dev/null 

Хороший подход и он использует а не явный путь. - хэшлок

Другой способ получить текущую версию Boost (Linux Ubuntu):

~$ dpkg -s libboost-dev | grep Version Version: 1.58.0.1ubuntu1 

Источник

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

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

13 ответов

Протестировано с надстройкой 1.51.0:

Выход: использование Boost 1.51.0

Протестировано с буст-версиями 1.51.0 до 1.65.0

Если вам нужно знать только свою информацию, просто загляните в /usr/include/boost/version.hpp (Ubuntu 13.10) и прочитайте информацию напрямую

#include #include #include int main() < std::cout 

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

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

dpkg -s libboost-dev | grep 'Version' 

Boost, установленный на OS X с использованием homebrew version.hpp файл в /usr/local/Cellar/boost//include/boost/version.hpp (обратите внимание, что версия уже упоминается в пути).

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

@Vertexwahns ответ, но написанный на bash. Для ленивых:

boost_version=$(cat /usr/include/boost/version.hpp | grep define | grep "BOOST_VERSION " | cut -d' ' -f3) echo "installed boost version: $(echo "$boost_version / 100000" | bc).$(echo "$boost_version / 100 % 1000" | bc).$(echo "$boost_version % 100 " | bc)" 

Дает мне installed boost version: 1.71.0

Что касается меня, вы можете сначала (найти version.hpp переменная версия находится в нем, если вы знаете, где он находится (в Ubuntu это обычно в /usr/include/boost/version.hpp по умолчанию устанавливаем)):

Второе шоу это версия от:

 grep BOOST_LIB_VERSION /usr/include/boost/version.hpp 
 grep BOOST_VERSION /usr/include/boost/version.hpp. 

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

[email protected]:~$ 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 [email protected]:~$ 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 [email protected]:~$ 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" 

Показать локально установленную версию:

[email protected]:~$ 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 представителей)

Я знаю, что на это уже давно ответили. Но я нигде не мог найти, как это сделать в bash. Поэтому я подумал, что это может помочь кому-то с такой же проблемой. Также это должно работать независимо от того, где установлено boost, если компилятор может его найти. И он даст вам номер версии, который активно используется компилятором, когда у вас установлено несколько версий.

< VERS=$(echo -e '#include \nBOOST_VERSION' | gcc -s -x c++ -E - | grep "^[^#;]") > &> /dev/null 

кот /usr/local/include/boost/version.hpp | grep BOOST_LIB_VERSION

Другой способ получить текущую версию boost (Linux Ubuntu):

~$ dpkg -s libboost-dev | grep Version Version: 1.58.0.1ubuntu1 

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

#include #include using namespace std; int main()

Если вы установили Boost на macOS через Homebrew, вы, вероятно, увидите установленную версию Boost с:

Источник

Читайте также:  Отключить ждущий режим линукс
Оцените статью
Adblock
detector