ভিজ্যুয়াল স্টুডিওতে একটি ফাঁকা প্রকল্পে বুস্ট লাইব্রেরি কীভাবে ব্যবহার করবেন সে সম্পর্কে ধাপে ধাপে ধাপে কী বুঝায়?
ভিজ্যুয়াল স্টুডিওতে একটি ফাঁকা প্রকল্পে বুস্ট লাইব্রেরি কীভাবে ব্যবহার করবেন সে সম্পর্কে ধাপে ধাপে ধাপে কী বুঝায়?
উত্তর:
যদিও নাটের উত্তর ইতিমধ্যে বেশ ভাল, আমি অনুরূপ হিসাবে ভিজ্যুয়াল স্টুডিও 2010 এর জন্য এটিতে আরও বিশেষভাবে প্রসারিত করতে যাচ্ছি এবং বহিরাগত লাইব্রেরিগুলির জন্য প্রয়োজনীয় বিভিন্ন requiresচ্ছিক উপাদানগুলিতে সংকলনের তথ্য অন্তর্ভুক্ত করছি।
আপনি যদি কেবল শিরোনামের লাইব্রেরি ব্যবহার করে থাকেন তবে আপনাকে যা করতে হবে তা হল বুস্ট ডাউনলোডটি সংরক্ষণাগারভুক্ত করা এবং পরিবেশের ভেরিয়েবলগুলি সেট আপ করা। নীচের নির্দেশাবলী কেবল ভিজ্যুয়াল স্টুডিওর জন্য পরিবেশের পরিবর্তনশীলগুলি সেট করে, পুরো সিস্টেম জুড়ে নয়। নোট আপনি শুধুমাত্র এটি করতে হবে।
C:\boost_1_47_0
)।Microsoft.Cpp.<Platform>.user
, এবং Properties
সম্পাদনার জন্য সম্পত্তি পৃষ্ঠা খুলতে নির্বাচন করুন।VC++ Directories
বামদিকে নির্বাচন করুন।Include Directories
আপনার বুস্ট উত্স ফাইলগুলির পথ অন্তর্ভুক্ত করতে বিভাগটি সম্পাদনা করুন ।আপনি যদি বুস্টের সেই অংশটি ব্যবহার করতে চান যা বিল্ডিংয়ের প্রয়োজন হয়, তবে বাহ্যিক নির্ভরতার প্রয়োজন এমন বৈশিষ্ট্যগুলির মধ্যে কোনওটি নেই, তবে এটি নির্মাণ করা মোটামুটি সহজ।
C:\boost_1_47_0
)।bootstrap.bat
b2.exe (পূর্বে নাম বিজাম) তৈরি করতে।বি 2 চালান:
b2 --toolset=msvc-10.0 --build-type=complete stage
; b2 --toolset=msvc-10.0 --build-type=complete architecture=x86 address-model=64 stage
হাঁটতে যান / সিনেমা দেখুন বা 2 / ....
Library Directories
আপনার বুস্ট লাইব্রেরি আউটপুট পাথ অন্তর্ভুক্ত বিভাগে সম্পাদনা করুন । (উপরের উদাহরণ এবং নির্দেশাবলীর জন্য ডিফল্ট হবে C:\boost_1_47_0\stage\lib
x আপনি x86 & x64 পাশাপাশি থাকতে চাইলে ডিরেক্টরিটির পুনঃনামকরণ এবং স্থানান্তরিত করুন (যেমন <BOOST_PATH>\lib\x86
& তে <BOOST_PATH>\lib\x64
))।আপনি যদি alচ্ছিক উপাদানগুলি চান তবে আপনার আরও কাজ করতে হবে। এইগুলো:
বুস্ট.আই.এস. স্ট্রিম্পস বিজিপ ২ ফিল্টার:
C:\bzip2-1.0.6
) into-sBZIP2_SOURCE="C:\bzip2-1.0.6"
পদক্ষেপ 5 এ b2 চালানোর সময় বিকল্পটিতে যুক্ত করুন ।বুস্ট.আই.এস. স্ট্রিম জিলিব ফিল্টারগুলি
C:\zlib-1.2.5
) সংরক্ষণ করুন eg-sZLIB_SOURCE="C:\zlib-1.2.5"
পদক্ষেপ 5 এ b2 চালানোর সময় বিকল্পটিতে যুক্ত করুন ।Boost.MPI
project-config.jam
ডিরেক্টরিতে ফাইলটি সম্পাদনা করুন যা <BOOST_PATH>
বুটস্ট্র্যাপ চালানোর ফলে হয়েছিল। এমন একটি লাইনে যুক্ত করুন যা পড়ুন using mpi ;
(';' এর আগে স্থানটি নোট করুন)।Boost.Python
লাইব্রেরির 32-বিট সংস্করণটি সম্পূর্ণরূপে তৈরি করতে 32-বিট পাইথন এবং একইভাবে 64-বিট সংস্করণের প্রয়োজন for যদি এই কারণে আপনার একাধিক সংস্করণ ইনস্টল করা থাকে তবে আপনাকে বি 2 কে নির্দিষ্ট সংস্করণটি কোথায় পাওয়া যাবে এবং কোনটি কখন ব্যবহার করতে হবে তা জানাতে হবে। এটি করার একটি উপায় হ'ল project-config.jam
ডিরেক্টরিটিতে ফাইল সম্পাদনা করা যা <BOOST_PATH>
বুটস্ট্র্যাপ চলমান resulted আপনার পাইথন ইনস্টলেশন পথ এবং সংস্করণগুলির জন্য যথাযথ হিসাবে সামঞ্জস্য করে নিম্নলিখিত দুটি লাইন যুক্ত করুন (';' এর আগে স্থানটি নোট করুন)।
using python : 2.6 : C:\\Python\\Python26\\python ;
using python : 2.6 : C:\\Python\\Python26-x64\\python : : : <address-model>64 ;
মনে রাখবেন যে এই জাতীয় স্পষ্ট পাইথন স্পেসিফিকেশন বর্তমানে এমপিআই বিল্ডকে ব্যর্থ করে তোলে। সুতরাং আপনি যদি এমপিআইও তৈরি করে থাকেন তবে সবকিছু তৈরির জন্য আপনাকে কোনও স্পেসিফিকেশন ছাড়াই কিছু আলাদা বিল্ডিং করতে হবে।
উত্সাহ তৈরি করতে উপরের দ্বিতীয় নির্দেশাবলীর অনুসরণ করুন।
বুস্ট.রেজেক্স আইসিইউ সমর্থন
C:\icu4c-4_8
)।<ICU_PATH>\source\allinone
।-sICU_PATH="C:\icu4c-4_8"
পদক্ষেপ 5 এ b2 চালানোর সময় বিকল্পটিতে যুক্ত করুন ।বুস্ট ওয়েব সাইটের নির্দেশাবলী সহায়ক, যদিও এখানে একটি ঘনীভূত সংস্করণ এছাড়াও x 64 লাইব্রেরি তৈরি করে।
এটি বুস্ট শিরোলেখ ফাইলগুলিতে C:\Boost\include\boost-(version)
এবং 32-বিট লাইব্রেরির অধীনে ইনস্টল করে C:\Boost\lib\i386
। নোট করুন যে গ্রন্থাগারগুলির জন্য পূর্বনির্ধারিত অবস্থানটি C:\Boost\lib
কিন্তু আপনি i386
যদি একাধিক আর্কিটেকচারের জন্য নির্মাণের পরিকল্পনা করেন তবে আপনি সেগুলি একটি ডিরেক্টরিতে রাখতে চান ।
bootstrap
চালান: b2 toolset=msvc-12.0 --build-type=complete --libdir=C:\Boost\lib\i386 install
toolset=msvc-11.0
toolset=msvc-10.0
toolset=msvc-14.1
যোগ C:\Boost\include\boost-(version)
আপনার অন্তর্ভুক্ত পথে ।
C:\Boost\lib\i386
আপনার লিব পথের দিকে।এটি বুস্ট শিরোলেখ ফাইলগুলিকে C:\Boost\include\boost-(version)
এবং এর অধীনে libra৪- বিট লাইব্রেরি ইনস্টল করে C:\Boost\lib\x64
। নোট করুন যে গ্রন্থাগারগুলির জন্য ডিফল্ট অবস্থান C:\Boost\lib
তবে আপনি সেগুলি একটি এর অধীনে রাখতে চানx64
যদি একাধিক আর্কিটেকচারের জন্য নির্মাণের পরিকল্পনা করেন তবে আপনি ডিরেক্টরিতে ।
bootstrap
b2 toolset=msvc-12.0 --build-type=complete --libdir=C:\Boost\lib\x64 architecture=x86 address-model=64 install
toolset=msvc-11.0
toolset=msvc-10.0
C:\Boost\include\boost-(version)
আপনার অন্তর্ভুক্ত পথে ।C:\Boost\lib\x64
আপনার লিব পথের দিকে।আপনি আর্গুমেন্ট হিসাবে% NUMBER_OF_PROCESSORS% ব্যবহার করতে পারেন এটি আপনার সমস্ত কোরের ব্যবহার করবে। আমার কোয়াড কোরগুলিতে জিনিসগুলিকে সুপার দ্রুত করে তোলে।
আমি নিম্নলিখিত কৌশলটি সুপারিশ করতে পারি: একটি বিশেষ boost.props
ফাইল তৈরি করুন
এই পদ্ধতির এমন মান রয়েছে যা উত্সাহ কেবলমাত্র সেই প্রকল্পগুলিতে অন্তর্ভুক্ত থাকে যেখানে আপনি এটি স্পষ্টভাবে অন্তর্ভুক্ত করতে চান। আপনার যখন নতুন প্রকল্প রয়েছে যা বুস্ট ব্যবহার করে, তা করুন:
সম্পাদনা করুন (@ জিম-ফ্রেড থেকে নিম্নলিখিত সম্পাদনা):
ফলস্বরূপ boost.props
ফাইলটি এরকম কিছু দেখাচ্ছে ...
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros">
<BOOST_DIR>D:\boost_1_53_0\</BOOST_DIR>
</PropertyGroup>
<PropertyGroup>
<IncludePath>$(BOOST_DIR);$(IncludePath)</IncludePath>
<LibraryPath>$(BOOST_DIR)stage\lib\;$(LibraryPath)</LibraryPath>
</PropertyGroup>
</Project>
এটিতে বুস্ট ডিরেক্টরি (এই ক্ষেত্রে, ডি: \ বুস্ট_1_53_0) এবং অন্য দুটি পরামিতি: ইনক্লুডপথ এবং লাইব্রেরিপথের অবস্থানের জন্য একটি ব্যবহারকারী ম্যাক্রো রয়েছে। একটি বিবৃতি#include <boost/thread.hpp>
যথাযথ ডিরেক্টরিতে থ্রেড hpp সন্ধান করবে (এই ক্ষেত্রে, ডি: st boost_1_53_0 \ বুস্ট \ থ্রেড hpp)। 'স্টেজ \ lib \' ডিরেক্টরিটি ইনস্টল করা ডিরেক্টরি অনুসারে পরিবর্তন হতে পারে।
এই বুস্ট.পপস ফাইলটি D:\boost_1_53_0\
ডিরেক্টরিতে অবস্থিত হতে পারে ।
বুস্টের কোন অংশগুলি আপনার দরকার? অনেকগুলি স্টাফ টিআর 1 এর অংশ যা ভিজ্যুয়াল স্টুডিওতে প্রেরণ করা হয়, তাই আপনি কেবল বলতে পারেন, উদাহরণস্বরূপ:
#include <tr1/memory>
using std::tr1::shared_ptr;
জেমসের মতে, এটিও কাজ করা উচিত (সি ++ 0 এক্সে):
#include <memory>
using std::shared_ptr;
std
সেগুলি সি ++ 0x স্ট্যান্ডার্ডে থাকায় সেগুলি সমস্তই নেমস্পেসে স্থানান্তরিত হয়েছে । (আমি মনে করি তারা সম্ভবত std::tr1
নেমস্পেসে রয়েছে পিছনের সামঞ্জস্যের জন্য)।
এই থ্রেডটি প্রায় কিছুটা সময় হয়েছে, এবং আমি ভেবেছিলাম আপনার নির্দিষ্ট হার্ডওয়্যারটিতে যত দ্রুত সম্ভব বুস্ট তৈরি করতে আমি কীভাবে কিছু যুক্ত করব।
আপনার যদি যথাক্রমে 4 বা 6-কোর ব্যবহার থাকে -j5 বা -j7। অবশ্যই যদি আপনি ডুয়াল কোর না করেন তবে অবশ্যই স্ট্যান্ডার্ড বিল্ড বা জে 2 নয়।
আমি আমার মূল স্টেশনে 3930 কে (6-কোর) স্টকযুক্ত স্যান্ডি ব্রিজ এক্সট্রিম চালাচ্ছি, তবে পুরানো ব্যাকআপ বাক্সে 2600k (4-কোর) রয়েছে, এবং প্রবণতাটি হ'ল এন + এর সাথে সেরা বুস্ট সংকলনের সময়টি পেয়েছি + 1 বিল্ড প্রসেস যেখানে N হল শারীরিক কোরের সংখ্যা। N + 2 হ্রাসকারী রিটার্নের একটি পর্যায়ে পৌঁছায় এবং সময়গুলি আরও উপরে যায়।
নোটস: হাইপারথ্রেডিং সক্ষম করা হয়েছে, 32 গিগাবাইট র্যাম ডিডিআর 3, স্যামসাং 840 ইভিও এসএসডি।
-জে -6-কোর (2 মিনিট এবং 51 সেকেন্ড) (উইন 7 আলটিমেট এক্স 64) (ভিজ্যুয়াল স্টুডিও 2013)
PS C:\Boost\boost_1_56_0> measure-command { .\b2 -j7 --build-type=complete msvc stage }
Days : 0
Hours : 0
Minutes : 2
Seconds : 51
Milliseconds : 128
Ticks : 1711281830
TotalDays : 0.0019806502662037
TotalHours : 0.0475356063888889
TotalMinutes : 2.85213638333333
TotalSeconds : 171.128183
TotalMilliseconds : 171128.183
-জে -6-কোর (3 মিনিট 2 সেকেন্ড) (উইন 7 আলটিমেট এক্স 64) (ভিজ্যুয়াল স্টুডিও 2013)
PS C:\Boost\boost_1_56_0> measure-command { .\b2 -j6 --build-type=complete msvc stage }
Days : 0
Hours : 0
Minutes : 3
Seconds : 2
Milliseconds : 809
Ticks : 1828093904
TotalDays : 0.00211584942592593
TotalHours : 0.0507803862222222
TotalMinutes : 3.04682317333333
TotalSeconds : 182.8093904
TotalMilliseconds : 182809.3904
-জে 8 এ 6-কোর (3 মিনিট 17 সেকেন্ড) (উইন 7 আলটিমেট এক্স 64) (ভিজ্যুয়াল স্টুডিও 2013)
PS C:\Boost\boost_1_56_0> measure-command { .\b2 -j8 --build-type=complete msvc stage }
Days : 0
Hours : 0
Minutes : 3
Seconds : 17
Milliseconds : 652
Ticks : 1976523915
TotalDays : 0.00228764342013889
TotalHours : 0.0549034420833333
TotalMinutes : 3.294206525
TotalSeconds : 197.6523915
TotalMilliseconds : 197652.3915
কনফিগ
Building the Boost C++ Libraries.
Performing configuration checks
- 32-bit : yes (cached)
- arm : no (cached)
- mips1 : no (cached)
- power : no (cached)
- sparc : no (cached)
- x86 : yes (cached)
- has_icu builds : no (cached)
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
- zlib : no (cached)
- iconv (libc) : no (cached)
- iconv (separate) : no (cached)
- icu : no (cached)
- icu (lib64) : no (cached)
- message-compiler : yes (cached)
- compiler-supports-ssse3 : yes (cached)
- compiler-supports-avx2 : yes (cached)
- gcc visibility : no (cached)
- long double support : yes (cached)
warning: skipping optional Message Passing Interface (MPI) library.
note: to enable MPI support, add "using mpi ;" to user-config.jam.
note: to suppress this message, pass "--without-mpi" to bjam.
note: otherwise, you can safely ignore this message.
- zlib : no (cached)
আমি নোট করেছি যে -৪-বিট বিল্ডটি কিছুটা বেশি সময় নেয়, তাদের এবং আপডেটের জন্য আমার একই তুলনা করা দরকার।
বুস্ট ডাউনলোড করুন : http://www.boost.org/users/download/ থেকে যেমন এসএনএন দ্বারা
এরপরে: cmd -> ডিরেক্টরি বুস্ট করতে যান ("D: st boostTrunk" - যেখানে আপনি চেকআউট করেন বা ডাউনলোড এবং প্যাকেজ বের করেন): কমান্ড: বুটস্ট্র্যাপ
এর মধ্যে আমরা bjam.exe তৈরি করেছি ("D: st boostTrunk") তার পরে: কমান্ড: বিজাম টুলসেট = এমএসভিসি -10.0 ভেরিয়েন্ট = ডিবাগ, রিলিজ থ্রেডিং = বহু লিঙ্ক = স্থিতিশীল (এতে কিছুটা সময় লাগবে ~ 20 মিনিট))
এর পরে: ভিজ্যুয়াল স্টুডিও 2010 খুলুন -> খালি প্রকল্প তৈরি করুন -> প্রকল্পের বৈশিষ্ট্যে যান -> সেট করুন:
এই কোডটি আটকান এবং এটি কাজ করছে কিনা তা পরীক্ষা করে দেখুন?
#include <iostream>
#include <boost/shared_ptr.hpp>
#include <boost/regex.hpp>
using namespace std;
struct Hello
{
Hello(){
cout << "Hello constructor" << endl;
}
~Hello(){
cout << "Hello destructor" << endl;
cin.get();
}
};
int main(int argc, char**argv)
{
//Boost regex, compiled library
boost::regex regex("^(Hello|Bye) Boost$");
boost::cmatch helloMatches;
boost::regex_search("Hello Boost", helloMatches, regex);
cout << "The word between () is: " << helloMatches[1] << endl;
//Boost shared pointer, header only library
boost::shared_ptr<Hello> sharedHello(new Hello);
return 0;
}
সংস্থানসমূহ: https://www.youtube.com/watch?v=5AmwIwedTCM
এখানে আমি বুস্টটি ব্যবহার করতে সক্ষম হয়েছি:
আপনি কোনও ত্রুটি ছাড়াই আপনার প্রকল্পটি তৈরি করতে সক্ষম হবেন!
এখানে অবস্থিত উইন্ডোজ ইনস্টলারগুলি আমার পক্ষে নিখুঁতভাবে কাজ করেছিল। আমি নিম্নলিখিত পদক্ষেপ নিয়েছি:
শুভকামনা!
কেটিসির খুব তথ্যমূলক মূল উত্তরটিতে একটি ছোট সংযোজন:
আপনি যদি নিখরচায় ভিজ্যুয়াল স্টুডিও সি ++ ২০১০ এক্সপ্রেস ব্যবহার করেন এবং সেইটিকে one৪-বিট বাইনারিগুলি সংকলন করতে সক্ষম হন এবং এখন এটি বুস্ট লাইবেরির একটি 64৪-বিট সংস্করণ ব্যবহার করতে চান তবে আপনি 32- বিট লাইব্রেরি (আপনার মাইলেজ অবশ্যই আলাদা হতে পারে, তবে আমার মেশিনে এটি দুঃখজনক ঘটনা)।
আমি নিম্নলিখিতটি ব্যবহার করে এটি ঠিক করতে পারলাম: উপরে বর্ণিত পদক্ষেপগুলি অন্তর্হিতের মধ্যে
পরিবেশ স্থাপনের জন্য আমি 'সেতেনভ' এ একটি কল প্রবেশ করিয়েছি। একটি রিলিজ বিল্ডের জন্য, উপরের পদক্ষেপগুলি হয়ে যায়:
আমি এই তথ্যটি এখানে পেয়েছি: http://boost.2283326.n4.nabble.com/64-bit-with-VS-Exress-again-td3044258.html
ভিজ্যুয়াল স্টুডিওতে আপনাকে শুরু করার একটি ন্যূনতম উদাহরণ:
1. এখান থেকে বুস্টটি ডাউনলোড এবং আনজিপ করুন।
২. একটি ভিজ্যুয়াল স্টুডিও খালি প্রকল্প তৈরি করুন, উদাহরণস্বরূপ বুস্ট লাইব্রেরি ব্যবহার করে পৃথক সংকলনের প্রয়োজন নেই:
#include <iostream>
#include <boost/format.hpp>
using namespace std;
using namespace boost;
int main()
{
unsigned int arr[5] = { 0x05, 0x04, 0xAA, 0x0F, 0x0D };
cout << format("%02X-%02X-%02X-%02X-%02X")
% arr[0]
% arr[1]
% arr[2]
% arr[3]
% arr[4]
<< endl;
}
3. আপনার ভিজ্যুয়াল স্টুডিও প্রকল্পের বৈশিষ্ট্যে অতিরিক্ত অন্তর্ভুক্ত ডিরেক্টরিগুলি সেট করুন:
খুব সাধারণ উদাহরণের জন্য:
ভিজ্যুয়াল স্টুডিওতে কীভাবে বুস্ট লাইব্রেরি ইনস্টল করবেন
আপনি যদি পুরো বুস্ট লাইব্রেরিটি ব্যবহার করতে না চান তবে কেবল একটি উপসেট:
উইন্ডোজে বুস্ট লাইব্রেরির একটি উপসেট ব্যবহার করা
আপনি যদি বিশেষত এখন গ্রন্থাগারগুলি সম্পর্কে সঙ্কলন করতে চান তবে:
এছাড়াও, এমন একটি জিনিস রয়েছে যা আমি খুব দরকারী বলে মনে করি। আপনার বুথ পাথের জন্য পরিবেশ পরিবর্তনশীল ব্যবহার করুন। (উইন্ডোতে কীভাবে পরিবেশের ভেরিয়েবলগুলি সেট করা যায়, 7,8,10 এর জন্য নীচে লিঙ্ক করুন) BOOST_ROOT ভেরিয়েবলটি এখন সাধারণ জায়গা বলে মনে হয় এবং আপনি যেখানে মোছা ছাড়েন না সেই মূল পথে সেট করা থাকে।
তারপরে প্রোপার্টি, সি ++, সাধারণ, অতিরিক্ত অন্তর্ভুক্ত ডিরেক্টরিগুলি ব্যবহার করুন $(BOOST_ROOT)
। তারপরে / আপনি যখন বুস্ট লাইব্রেরির একটি নতুন সংস্করণে চলে যান তবে আপনি আপনার পরিবেশ পরিবর্তনশীলটিকে এই নতুন সংস্করণে নির্দেশ করতে আপডেট করতে পারেন। আপনার আরও প্রকল্প হিসাবে, বুস্ট ব্যবহার করুন আপনাকে সেগুলির জন্য 'অতিরিক্ত অন্তর্ভুক্ত ডিরেক্টরিগুলি' আপডেট করতে হবে না।
আপনি একটি BOOST_LIB ভেরিয়েবলও তৈরি করতে পারেন এবং এটি যেখানে লিবসটি মঞ্চস্থ হয় সেখানে নির্দেশ করতে পারেন। একইভাবে লিঙ্কার-> অতিরিক্ত গ্রন্থাগার ডিরেক্টরিগুলির জন্য, আপনাকে প্রকল্পগুলি আপডেট করতে হবে না। আমার কাছে vs 10 দিয়ে নির্মিত কিছু পুরানো জিনিস এবং vs14 এর সাথে নতুন স্টাফ রয়েছে তাই একই ফোল্ডারে বুস্ট লিবের উভয় স্বাদই নির্মিত। সুতরাং আমি যদি কোনও প্রকল্প বনাম 10 থেকে বনাম 14 এ স্থানান্তর করি তবে আমাকে বুথ পাথগুলি পরিবর্তন করতে হবে না।
দ্রষ্টব্য: আপনি যদি পরিবেশের পরিবর্তনশীল পরিবর্তন করেন তবে এটি হঠাৎ কোনও উন্মুক্ত ভিএস প্রকল্পে কাজ করবে না। ভিএস শুরুতে ভেরিয়েবল লোড করে। সুতরাং আপনাকে ভিএস বন্ধ করতে হবে এবং এটি আবার খুলতে হবে।