Jika Anda ingin mengetahuinya secara manual (bukan dalam kode), buka direktori include, dan buka version.hpp. BOOST_VERSIONmembutuhkan sedikit penguraian, tetapi BOOST_LIB_VERSIONcukup jelas. Nilai tambang saat ini"1_42"
TED
4
Di linux, menggunakan "ldd yourprogramname" akan sering menunjukkan versi penguat mana yang ditautkan ke program Anda (yang memiliki kemungkinan menunjukkan perbedaan dari tajuk, meskipun tidak mungkin berbeda).
Homer6
10
Juga di linux,dpkg -S /usr/include/boost/version.hpp
Efreeto
8
Anda dapat dengan cepat mencari nilai saat ini melalui misalnya echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -x c++ -E -- misalnya di Fedora 26: 106300 (yaitu 1,63)
maxschlepzig
69
Diuji dengan 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;
Output: Menggunakan Boost 1.51.0
Diuji dengan peningkatan versi 1.51.0 hingga 1.65.0
Untuk memecahkan rekor @Vertexwahn: Bekerja juga dengan 1.60.0 dan 1.61.0 .
m8mble
4
@Vertexwahn Mereka harus mempekerjakan Anda untuk segala jenis perubahan rilis.
PascalVKooten
14
Mengapa Anda tidak memperbarui jawaban Anda dengan sesuatu seperti: 'Bekerja dengan semua versi Boost (versi yang diuji 1.51 hingga 1.63).' -
Daripada
62
Jika Anda hanya perlu mengetahui informasi Anda sendiri, cukup lihat di /usr/include/boost/version.hpp (Ubuntu 13.10) dan baca informasinya secara langsung
Mengapa tidak hanya std::cout << "Boost version: " << BOOST_LIB_VERSION;:?
TED
6
Menjalankan kode ini menghasilkan "Boost version: 0.199.60" sedangkan versi TED mengeluarkan "Boost version: 1_48"
Homer6
5
Ini tidak berhasil. Mengapa ada yang suka ini? Adakah yang benar-benar menjalankan kode ini dan mendapatkan hasil yang berguna? Saya kira orang melihat "hex" dan mengira itu pasti benar.
JDiMatteo
1
Ini tidak benar. Versi peningkatan disimpan secara desimal, bukan secara heksagonal.
Apakah libboost-devsama dengan "boost"? Karena saya memiliki banyak hal /usr/include/boosttetapi perintah Anda memberi is not installed.
Ben
7
Boost diinstal pada OS X menggunakan homebrew version.hppfile yang diinginkan di /usr/local/Cellar/boost/<version>/include/boost/version.hpp(perhatikan, bahwa versinya sudah disebutkan di jalur).
Saya kira cara tercepat untuk menentukan versi pada sistem mirip UNIX adalah dengan mencari boostdi /usr:
Bagi saya, Anda bisa terlebih dahulu (temukan version.hpp variabel versi di dalamnya, jika Anda tahu di mana itu (di ubuntu biasanya di /usr/include/boost/version.hppinstal secara default)):
Bagi saya, saya memiliki dua peningkatan versi yang diinstal di sistem saya. Output seperti di bawah ini:
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"
Tampilkan versi lokal yang diinstal:
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"
Saya stugeled untuk mengetahui nomor versi peningkatan di bash .
Akhirnya melakukan mengikuti, yang menyimpan kode versi dalam variabel, menekan kesalahan. Ini menggunakan contoh dari maxschlepzig di komentar jawaban yang diterima. (Tidak dapat berkomentar, tidak memiliki 50 Rep)
Saya tahu ini sudah lama dijawab. Tetapi saya tidak dapat menemukan cara melakukannya dalam pesta di mana pun. Jadi saya pikir ini mungkin membantu seseorang dengan masalah yang sama. Ini juga harus bekerja di mana pun boost dipasang, selama comiler dapat menemukannya. Dan itu akan memberi Anda nomor versi yang secara aktual digunakan oleh comiler, ketika Anda menginstal beberapa versi.
BOOST_VERSION
membutuhkan sedikit penguraian, tetapiBOOST_LIB_VERSION
cukup jelas. Nilai tambang saat ini"1_42"
dpkg -S /usr/include/boost/version.hpp
echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -x c++ -E -
- misalnya di Fedora 26: 106300 (yaitu 1,63)Diuji dengan 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;
Output: Menggunakan Boost 1.51.0
Diuji dengan peningkatan versi 1.51.0 hingga 1.65.0
sumber
Jika Anda hanya perlu mengetahui informasi Anda sendiri, cukup lihat di /usr/include/boost/version.hpp (Ubuntu 13.10) dan baca informasinya secara langsung
sumber
#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; }
Pembaruan: jawabannya telah diperbaiki.
sumber
std::cout << "Boost version: " << BOOST_LIB_VERSION;
:?Bergantung pada bagaimana Anda menginstal boost dan OS apa yang Anda jalankan, Anda juga dapat mencoba yang berikut ini:
dpkg -s libboost-dev | grep 'Version'
sumber
libboost-dev
sama dengan "boost"? Karena saya memiliki banyak hal/usr/include/boost
tetapi perintah Anda memberiis not installed
.Boost diinstal pada OS X menggunakan homebrew
version.hpp
file yang diinginkan di/usr/local/Cellar/boost/<version>/include/boost/version.hpp
(perhatikan, bahwa versinya sudah disebutkan di jalur).Saya kira cara tercepat untuk menentukan versi pada sistem mirip UNIX adalah dengan mencari
boost
di/usr
:find /usr -name "boost"
sumber
Bagi saya, Anda bisa terlebih dahulu (temukan version.hpp variabel versi di dalamnya, jika Anda tahu di mana itu (di ubuntu biasanya di
/usr/include/boost/version.hpp
instal secara default)):locate `boost/version.hpp`
Kedua menunjukkan versinya oleh:
grep BOOST_LIB_VERSION /usr/include/boost/version.hpp
atau
grep BOOST_VERSION /usr/include/boost/version.hpp.
Bagi saya, saya memiliki dua peningkatan versi yang diinstal di sistem saya. Output seperti di bawah ini:
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"
Tampilkan versi lokal yang diinstal:
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"
sumber
Saya stugeled untuk mengetahui nomor versi peningkatan di bash .
Akhirnya melakukan mengikuti, yang menyimpan kode versi dalam variabel, menekan kesalahan. Ini menggunakan contoh dari maxschlepzig di komentar jawaban yang diterima. (Tidak dapat berkomentar, tidak memiliki 50 Rep)
Saya tahu ini sudah lama dijawab. Tetapi saya tidak dapat menemukan cara melakukannya dalam pesta di mana pun. Jadi saya pikir ini mungkin membantu seseorang dengan masalah yang sama. Ini juga harus bekerja di mana pun boost dipasang, selama comiler dapat menemukannya. Dan itu akan memberi Anda nomor versi yang secara aktual digunakan oleh comiler, ketika Anda menginstal beberapa versi.
{ VERS=$(echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -s -x c++ -E - | grep "^[^#;]") } &> /dev/null
sumber
Cara lain untuk mendapatkan versi boost saat ini (Linux Ubuntu):
~$ dpkg -s libboost-dev | grep Version Version: 1.58.0.1ubuntu1
Ref: https://www.osetc.com/en/how-to-install-boost-on-ubuntu-16-04-18-04-linux.html
sumber
Jika ada satu peningkatan yang diinstal pada macOS melalui Homebrew, seseorang kemungkinan akan melihat versi peningkatan yang diinstal dengan:
sumber
@Vertexwahns menjawab, tetapi ditulis dalam bash. Untuk orang yang malas:
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)"
Beri aku
installed boost version: 1.71.0
sumber
Mungkin sudah terjawab, tetapi Anda dapat mencoba program sederhana ini untuk menentukan apakah dan instalasi boost apa yang Anda miliki:
#include<boost/version.hpp> #include<iostream> using namespace std; int main() { cout<<BOOST_VERSION<<endl; return 0; }
sumber