c++ tutorial একটি সিস্টেম বুস্ট সংস্করণ নির্ধারণ কিভাবে?




the c++ programming language (8)

আপনি কীভাবে বুস্ট ইনস্টল করেছেন এবং আপনি কোন OS চালাচ্ছেন তার উপর নির্ভর করে আপনি নিম্নলিখিতগুলিও চেষ্টা করতে পারেন:

dpkg -s libboost-dev | grep 'Version'

সিস্টেমে Boost C ++ লাইব্রেরিগুলির সংস্করণ নির্ধারণ করার একটি দ্রুত উপায় আছে কি?



হোমব্রু ব্যবহার করে OS X এ ইনস্টল করা /usr/local/Cellar/boost/<version>/include/boost/version.hpp (নোট, সংস্করণটি ইতিমধ্যে পথের মধ্যে উল্লেখ করা হয়েছে) তে সংস্করণ /usr/local/Cellar/boost/<version>/include/boost/version.hpp ফাইল আছে।

আমি মনে করি যে কোনও ইউনিক্স-এর মতো সিস্টেমের সংস্করণ নির্ধারণ করার দ্রুততম /usr boost জন্য অনুসন্ধান করা হবে:

find /usr -name "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;

আউটপুট: বুস্ট 1.51.0 ব্যবহার করে

বুস্ট সংস্করণ 1.51.0 থেকে 1.65.0 সঙ্গে পরীক্ষা করা


আমার কাছে, আপনি প্রথমটি (সংস্করণ এইচপিপিএলটি ভেরিয়েবল ভার্চুয়ালটি খুঁজে পেতে পারেন, যদি আপনি জানেন যে এটি কোথায় থাকে (উবুন্টুতে এটি সাধারণত /usr/include/boost/version.hpp ডিফল্ট ইনস্টল করে):

 locate `boost/version.hpp`

দ্বিতীয়টি এর দ্বারা সংস্করণটি দেখায়:

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

অথবা

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

আমার কাছে, আমার সিস্টেমে দুটি সংস্করণ বুস্ট ইনস্টল আছে। নিচের হিসাবে আউটপুট:

[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"

যদি আপনার কেবল নিজের তথ্যের জন্য জানতে চান, তাহলে কেবল /usr/include/boost/version.hpp দেখুন (উবুন্টু 13.10) এবং সরাসরি তথ্যটি পড়ুন


আমি bash মধ্যে বুস্ট সংস্করণ নম্বর খুঁজে পেতে stugeled।

নিম্নলিখিত কাজ সমাপ্ত, যা একটি পরিবর্তনশীল সংস্করণ কোড সঞ্চয়, ত্রুটি supressing। এই গ্রহণযোগ্য উত্তর মন্তব্য Maxxchlepzig থেকে উদাহরণ ব্যবহার করে। (মন্তব্য করতে পারবেন না, 50 Rep)

আমি জানি এটি অনেক আগে উত্তর দেওয়া হয়েছে। কিন্তু আমি কোথাও bash মধ্যে এটি করতে কিভাবে খুঁজে পাচ্ছি না। তাই আমি এই একই সমস্যা সঙ্গে কাউকে সাহায্য করতে পারে। এছাড়াও এটি ইনস্টল করা যেখানে কোন ব্যাপার কাজ করা উচিত, যতক্ষণ কমলার এটি খুঁজে পেতে পারেন। এবং এটি আপনাকে সংস্করণ নম্বরটি দেবে যা কম্পাইলার দ্বারা ব্যবহার করা হয়, যখন আপনার একাধিক সংস্করণ ইনস্টল থাকে।

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

#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;
}

আপডেট: উত্তর সংশোধন করা হয়েছে।





version