Jeśli chcesz to rozgryźć ręcznie (zamiast w kodzie), przejdź do katalogu dołączanego i otwórz plik version.hpp. BOOST_VERSIONwymaga trochę rozszyfrowania, ale BOOST_LIB_VERSIONjest całkiem jasne. Moja wartość to obecnie"1_42"
TED
4
W Linuksie użycie "ldd nazwa programu" często pokaże ci, która wersja boosta została połączona z twoim programem (co może wskazywać na różnicę w stosunku do nagłówka, chociaż jest mało prawdopodobne, że będzie inna).
Homer6,
10
Również w dpkg -S /usr/include/boost/version.hpp
systemie
8
Możesz szybko sprawdzić aktualną wartość przez np. echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -x c++ -E -- na przykład w Fedorze 26: 106300 (tj. 1,63)
maxschlepzig.
69
Testowane z doładowaniem 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;
@Vertexwahn Powinni zatrudnić Cię do wszelkich zmian w wydaniu.
PascalVKooten
14
Dlaczego nie zaktualizujesz odpowiedzi na przykład: „Działa ze wszystkimi wersjami Boost (testowana wersja 1.51 do 1.63)”. - zamiast przepełniać sekcję komentarzy ...
maxschlepzig 22.07.17
62
Jeśli potrzebujesz tylko własnych informacji, po prostu zajrzyj do /usr/include/boost/version.hpp (Ubuntu 13.10) i przeczytaj informacje bezpośrednio
Dlaczego nie tylko std::cout << "Boost version: " << BOOST_LIB_VERSION;:?
TED
6
Uruchomienie tego kodu wyświetliło „Wersja przyspieszona: 0.199.60”, podczas gdy wersja TED wyświetliła „Wersja przyspieszona: 1_48”
Homer6,
5
To nie działa. Dlaczego ktoś miałby to głosować? Czy ktoś faktycznie uruchomił ten kod i uzyskał przydatne dane wyjściowe? Myślę, że ludzie widzą słowo „hex” i uważają, że musi być poprawne.
JDiMatteo
1
To nie jest poprawne. Wersja Boost jest zapisywana dziesiętnie, a nie sześciokątnie.
Czy to libboost-devto samo co „doładowanie”? Ponieważ mam dużo, /usr/include/boostale twoje polecenie daje is not installed.
Ben
7
Boost zainstalowany na OS X przy użyciu homebrew ma żądany version.hppplik w /usr/local/Cellar/boost/<version>/include/boost/version.hpp(uwaga, wersja jest już wymieniona w ścieżce).
Wydaje mi się, że najszybszym sposobem określenia wersji w dowolnym systemie podobnym do UNIX będzie wyszukiwanie boostw /usr:
Jeśli chodzi o mnie, możesz najpierw (znajdź version.hpp zmienną version w nim, jeśli wiesz, gdzie to jest (w Ubuntu zwykle /usr/include/boost/version.hppjest to domyślnie instalacja)):
Jeśli chodzi o mnie, mam zainstalowane w systemie dwie wersje doładowania. Wyjście jak poniżej:
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"
Pokaż zainstalowaną lokalnie wersję:
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"
Zacząłem szukać numeru wersji doładowania w bash .
Skończyło się na tym, że przechowuje kod wersji w zmiennej, pomijając błędy. Wykorzystuje to przykład z maxschlepziga w komentarzach do zaakceptowanej odpowiedzi. (Nie mogę komentować, nie mam 50 przedstawicieli)
Wiem, że odpowiedź na to pytanie udzielono dawno temu. Ale nigdzie nie mogłem znaleźć, jak to zrobić w bash. Pomyślałem więc, że to może pomóc komuś z tym samym problemem. Powinno to również działać bez względu na to, gdzie jest zainstalowane przyspieszenie, o ile kompilator może je znaleźć. I poda numer wersji, który jest faktycznie używany przez kompilator, gdy masz zainstalowanych wiele wersji.
BOOST_VERSION
wymaga trochę rozszyfrowania, aleBOOST_LIB_VERSION
jest całkiem jasne. Moja wartość to obecnie"1_42"
dpkg -S /usr/include/boost/version.hpp
echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -x c++ -E -
- na przykład w Fedorze 26: 106300 (tj. 1,63)Testowane z doładowaniem 1.51.0:
Wyjście: przy użyciu Boost 1.51.0
Testowane z wersjami boost od 1.51.0 do 1.65.0
źródło
Jeśli potrzebujesz tylko własnych informacji, po prostu zajrzyj do /usr/include/boost/version.hpp (Ubuntu 13.10) i przeczytaj informacje bezpośrednio
źródło
Aktualizacja: odpowiedź została naprawiona.
źródło
std::cout << "Boost version: " << BOOST_LIB_VERSION;
:?W zależności od tego, jak zainstalowałeś Boost i jaki system operacyjny używasz, możesz również wypróbować następujące rozwiązania:
źródło
libboost-dev
to samo co „doładowanie”? Ponieważ mam dużo,/usr/include/boost
ale twoje polecenie dajeis not installed
.Boost zainstalowany na OS X przy użyciu homebrew ma żądany
version.hpp
plik w/usr/local/Cellar/boost/<version>/include/boost/version.hpp
(uwaga, wersja jest już wymieniona w ścieżce).Wydaje mi się, że najszybszym sposobem określenia wersji w dowolnym systemie podobnym do UNIX będzie wyszukiwanie
boost
w/usr
:find /usr -name "boost"
źródło
Jeśli chodzi o mnie, możesz najpierw (znajdź version.hpp zmienną version w nim, jeśli wiesz, gdzie to jest (w Ubuntu zwykle
/usr/include/boost/version.hpp
jest to domyślnie instalacja)):Po drugie pokaż jego wersję:
lub
Jeśli chodzi o mnie, mam zainstalowane w systemie dwie wersje doładowania. Wyjście jak poniżej:
Pokaż zainstalowaną lokalnie wersję:
źródło
Zacząłem szukać numeru wersji doładowania w bash .
Skończyło się na tym, że przechowuje kod wersji w zmiennej, pomijając błędy. Wykorzystuje to przykład z maxschlepziga w komentarzach do zaakceptowanej odpowiedzi. (Nie mogę komentować, nie mam 50 przedstawicieli)
Wiem, że odpowiedź na to pytanie udzielono dawno temu. Ale nigdzie nie mogłem znaleźć, jak to zrobić w bash. Pomyślałem więc, że to może pomóc komuś z tym samym problemem. Powinno to również działać bez względu na to, gdzie jest zainstalowane przyspieszenie, o ile kompilator może je znaleźć. I poda numer wersji, który jest faktycznie używany przez kompilator, gdy masz zainstalowanych wiele wersji.
źródło
Inny sposób na uzyskanie aktualnej wersji boost (Linux Ubuntu):
Ref: https://www.osetc.com/en/how-to-install-boost-on-ubuntu-16-04-18-04-linux.html
źródło
Jeśli zainstalowano ulepszenie w systemie MacOS za pośrednictwem Homebrew, prawdopodobnie zobaczysz zainstalowane wersje doładowania z:
źródło
Być może już odpowiedź, ale możesz wypróbować ten prosty program, aby określić, czy i jaką masz instalację boost:
źródło