Bir sistemdeki Boost C ++ kitaplıklarının sürümünü belirlemenin hızlı bir yolu var mı?
Bir sistemdeki Boost C ++ kitaplıklarının sürümünü belirlemenin hızlı bir yolu var mı?
Yanıtlar:
Bilgi Makrolarını Artırın . Gerekenler:BOOST_VERSION
dpkg -S /usr/include/boost/version.hpp
echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -x c++ -E -
(yani 1,63) 106.300: Fedora 26 - örneğin
Güçlendirme 1.51.0 ile test edildi:
std::cout << "Using Boost "
<< BOOST_VERSION / 100000 << "." // major version
<< BOOST_VERSION / 100 % 1000 << "." // minor version
<< BOOST_VERSION % 100 // patch level
<< std::endl;
Çıktı: Boost 1.51.0'ı kullanma
1.51.0 - 1.65.0 yükseltme sürümleriyle test edildi
Yalnızca kendi bilgilerinizi bilmeniz gerekiyorsa, /usr/include/boost/version.hpp (Ubuntu 13.10) adresine bakın ve bilgileri doğrudan okuyun
#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;
}
Güncelleme: cevap düzeltildi.
std::cout << "Boost version: " << BOOST_LIB_VERSION;
?
Homebrew kullanarak OS X üzerinde kurulu Boost istenen version.hpp
dosyayı /usr/local/Cellar/boost/<version>/include/boost/version.hpp
içeriyor (sürümün zaten yolda belirtildiğine dikkat edin).
Herhangi bir UNIX benzeri sistemde sürümünü belirlemek için en hızlı yolu boost
içinde aramak olacaktır sanırım /usr
:
find /usr -name "boost"
Bana gelince, ilk önce (sürüm.hpp'yi bulun, sürüm değişkeninin içinde olduğunu, nerede olduğunu biliyorsanız (ubuntu'da genellikle /usr/include/boost/version.hpp
varsayılan kurulumda)):
locate `boost/version.hpp`
İkinci şovun sürümü:
grep BOOST_LIB_VERSION /usr/include/boost/version.hpp
veya
grep BOOST_VERSION /usr/include/boost/version.hpp.
Bana gelince, sistemimde iki sürüm artışı var. Çıktı aşağıdaki gibi:
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"
Yüklü yerel sürümü göster:
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"
Ben de boost sürüm numarasını öğrenmek için stugeled bash .
Sürüm kodunu bir değişkende saklayan ve hataları bastırarak aşağıdakileri yapın. Bu, kabul edilen cevabın yorumlarında maxschlepzig örneğini kullanır. (Yorum yapamıyorum, 50 Temsilciniz yok)
Bunun uzun zaman önce cevaplandığını biliyorum. Ama hiçbir yerde bash'da nasıl yapacağımı bulamadım. Ben de bunun aynı sorunu olan birine yardımcı olabileceğini düşündüm. Ayrıca, destekleyici nerede kurulursa kurulsun, derleyici bulabildiği sürece bu çalışmalıdır. Ayrıca, yüklü birden çok sürümünüz olduğunda, derleyici tarafından acutally kullanılan sürüm numarasını verecektir.
{
VERS=$(echo -e '#include <boost/version.hpp>\nBOOST_VERSION' | gcc -s -x c++ -E - | grep "^[^#;]")
} &> /dev/null
Mevcut yükseltme sürümünü almanın başka bir yolu (Linux Ubuntu):
~$ dpkg -s libboost-dev | grep Version
Version: 1.58.0.1ubuntu1
Ref: https://www.osetc.com/tr/how-to-install-boost-on-ubuntu-16-04-18-04-linux.html
Zaten cevap verilebilir, ancak bu basit programı deneyip yükleyemeyeceğinizi ve hangi yüklemeye sahip olduğunuzu belirlemek için deneyebilirsiniz:
#include<boost/version.hpp>
#include<iostream>
using namespace std;
int main()
{
cout<<BOOST_VERSION<<endl;
return 0;
}
BOOST_VERSION
biraz deşifre eder, amaBOOST_LIB_VERSION
oldukça açıktır. Benim değer şu anda"1_42"