Apakah ada cara cepat untuk menentukan versi pustaka Boost C ++ pada sistem?
Apakah ada cara cepat untuk menentukan versi pustaka Boost C ++ pada sistem?
Jawaban:
Tingkatkan Makro Informasi . Anda membutuhkan:BOOST_VERSION
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
Jika Anda hanya perlu mengetahui informasi Anda sendiri, cukup lihat di /usr/include/boost/version.hpp (Ubuntu 13.10) dan baca informasinya secara langsung
#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.
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'
libboost-dev
sama dengan "boost"? Karena saya memiliki banyak hal /usr/include/boost
tetapi perintah Anda memberi is 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"
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"
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
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
@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
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;
}
BOOST_VERSION
membutuhkan sedikit penguraian, tetapiBOOST_LIB_VERSION
cukup jelas. Nilai tambang saat ini"1_42"