ভিজ্যুয়াল স্টুডিও 2010-এ কীভাবে বুস্ট ব্যবহার করবেন


উত্তর:


512

যদিও নাটের উত্তর ইতিমধ্যে বেশ ভাল, আমি অনুরূপ হিসাবে ভিজ্যুয়াল স্টুডিও 2010 এর জন্য এটিতে আরও বিশেষভাবে প্রসারিত করতে যাচ্ছি এবং বহিরাগত লাইব্রেরিগুলির জন্য প্রয়োজনীয় বিভিন্ন requiresচ্ছিক উপাদানগুলিতে সংকলনের তথ্য অন্তর্ভুক্ত করছি।

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

  1. সর্বশেষ আপনার পছন্দের (যেমন একটি ডিরেক্টরির মধ্যে (এই প্রবন্ধ লেখার হিসাবে 1.47.0) বুস্ট সংস্করণ আর্কাইভ মুক্ত C:\boost_1_47_0)।
  2. ভিজ্যুয়াল স্টুডিওতে একটি নতুন ফাঁকা প্রকল্প তৈরি করুন।
  3. সম্পত্তি পরিচালক খুলুন এবং আপনার পছন্দসই প্ল্যাটফর্মের জন্য একটি কনফিগারেশন প্রসারিত করুন।
  4. & ডান ক্লিক নির্বাচন করুন Microsoft.Cpp.<Platform>.user, এবং Propertiesসম্পাদনার জন্য সম্পত্তি পৃষ্ঠা খুলতে নির্বাচন করুন।
  5. VC++ Directoriesবামদিকে নির্বাচন করুন।
  6. Include Directoriesআপনার বুস্ট উত্স ফাইলগুলির পথ অন্তর্ভুক্ত করতে বিভাগটি সম্পাদনা করুন ।
  7. প্রয়োজনে আপনার পছন্দের বিভিন্ন প্ল্যাটফর্মের জন্য 3 - 6 ধাপ পুনরাবৃত্তি করুন।

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

  1. সর্বশেষ আপনার পছন্দের (যেমন একটি ডিরেক্টরির মধ্যে (এই প্রবন্ধ লেখার হিসাবে 1.47.0) বুস্ট সংস্করণ আর্কাইভ মুক্ত C:\boost_1_47_0)।
  2. আপনার পছন্দের প্ল্যাটফর্মের জন্য ভিজ্যুয়াল স্টুডিও কমান্ড প্রম্পট শুরু করুন এবং যেখানে বুস্ট হবে সেখানে নেভিগেট করুন।
  3. চালান: bootstrap.batb2.exe (পূর্বে নাম বিজাম) তৈরি করতে।
  4. বি 2 চালান:

    • Win32: b2 --toolset=msvc-10.0 --build-type=complete stage ;
    • x64: b2 --toolset=msvc-10.0 --build-type=complete architecture=x86 address-model=64 stage

হাঁটতে যান / সিনেমা দেখুন বা 2 / ....

  1. পরিবেশের ভেরিয়েবলগুলি সেট করতে উপরের নির্দেশের সেট থেকে 2 - 6 ধাপে যান।
  2. Library Directoriesআপনার বুস্ট লাইব্রেরি আউটপুট পাথ অন্তর্ভুক্ত বিভাগে সম্পাদনা করুন । (উপরের উদাহরণ এবং নির্দেশাবলীর জন্য ডিফল্ট হবে C:\boost_1_47_0\stage\libx আপনি x86 & x64 পাশাপাশি থাকতে চাইলে ডিরেক্টরিটির পুনঃনামকরণ এবং স্থানান্তরিত করুন (যেমন <BOOST_PATH>\lib\x86& তে <BOOST_PATH>\lib\x64))।
  3. প্রয়োজনে আপনার পছন্দের বিভিন্ন প্ল্যাটফর্মের জন্য পদক্ষেপগুলি 2 - 6 এর পুনরাবৃত্তি করুন।

আপনি যদি alচ্ছিক উপাদানগুলি চান তবে আপনার আরও কাজ করতে হবে। এইগুলো:

  • Boost.IOS Bzip2 ফিল্টারগুলি স্ট্রিম করে
  • বুস্ট.আই.এস. স্ট্রিম জিলিব ফিল্টারগুলি
  • Boost.MPI
  • Boost.Python
  • বুস্ট.রেজেক্স আইসিইউ সমর্থন

বুস্ট.আই.এস. স্ট্রিম্পস বিজিপ ২ ফিল্টার:

  1. Bzip2 লাইব্রেরির সর্বশেষ সংস্করণটি সংরক্ষণ করুন (লেখার মতো 1.0.6) উত্স ফাইলগুলি আপনার পছন্দসই ডিরেক্টরিতে (যেমন C:\bzip2-1.0.6) into
  2. উত্সাহ তৈরি করতে উপরের দ্বিতীয় নির্দেশাবলীর অনুসরণ করুন, তবে -sBZIP2_SOURCE="C:\bzip2-1.0.6"পদক্ষেপ 5 এ b2 চালানোর সময় বিকল্পটিতে যুক্ত করুন ।

বুস্ট.আই.এস. স্ট্রিম জিলিব ফিল্টারগুলি

  1. Zlib গ্রন্থাগারের সর্বশেষ সংস্করণটি (লেখার মতো 1.2.5) উত্স ফাইলগুলি আপনার পছন্দের ডিরেক্টরিতে (যেমন C:\zlib-1.2.5) সংরক্ষণ করুন eg
  2. উত্সাহ তৈরি করতে উপরের দ্বিতীয় নির্দেশাবলীর অনুসরণ করুন, তবে -sZLIB_SOURCE="C:\zlib-1.2.5"পদক্ষেপ 5 এ b2 চালানোর সময় বিকল্পটিতে যুক্ত করুন ।

Boost.MPI

  1. মাইক্রোসফ্ট কম্পিউট ক্লাস্টার প্যাকের মতো এমপিআই বিতরণ ইনস্টল করুন।
  2. উত্সাহ বাড়াতে উপরের নির্দেশাবলীর দ্বিতীয় সেট থেকে 1 - 3 পদক্ষেপ অনুসরণ করুন।
  3. project-config.jamডিরেক্টরিতে ফাইলটি সম্পাদনা করুন যা <BOOST_PATH>বুটস্ট্র্যাপ চালানোর ফলে হয়েছিল। এমন একটি লাইনে যুক্ত করুন যা পড়ুন using mpi ;(';' এর আগে স্থানটি নোট করুন)।
  4. উত্সাহ বাড়াতে উপরের দ্বিতীয় সেট নির্দেশাবলীর বাকী পদক্ষেপগুলি অনুসরণ করুন। যদি এমপিআই ইনস্টলেশন স্বয়ংক্রিয়ভাবে সনাক্তকরণ ব্যর্থ হয়, তবে আপনাকে যথাযথ বিল্ড ফাইলটি সন্ধান করতে হবে এবং সঠিক জায়গায় এমপিআইয়ের জন্য অনুসন্ধান করতে হবে।

Boost.Python

  1. অ্যাক্টিস্টেটের অ্যাক্টিভ পাইথনের মতো পাইথন বিতরণ ইনস্টল করুন। পাইথন ইনস্টলেশনটি আপনার প্যাথে রয়েছে তা নিশ্চিত করুন Make
  2. লাইব্রেরির 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 ;

    মনে রাখবেন যে এই জাতীয় স্পষ্ট পাইথন স্পেসিফিকেশন বর্তমানে এমপিআই বিল্ডকে ব্যর্থ করে তোলে। সুতরাং আপনি যদি এমপিআইও তৈরি করে থাকেন তবে সবকিছু তৈরির জন্য আপনাকে কোনও স্পেসিফিকেশন ছাড়াই কিছু আলাদা বিল্ডিং করতে হবে।

  3. উত্সাহ তৈরি করতে উপরের দ্বিতীয় নির্দেশাবলীর অনুসরণ করুন।

বুস্ট.রেজেক্স আইসিইউ সমর্থন

  1. আইসিইউ 4 সি লাইব্রেরির সর্বশেষ সংস্করণটি (লেখার হিসাবে 4.8) উত্স ফাইলটি আপনার পছন্দসই ডিরেক্টরিতে উদাখ্যান করুন (যেমন C:\icu4c-4_8)।
  2. মধ্যে ভিজ্যুয়াল স্টুডিও সমাধানটি খুলুন <ICU_PATH>\source\allinone
  3. আপনার পছন্দের প্ল্যাটফর্মের জন্য ডিবাগ এবং রিলিজ কনফিগারেশনের জন্য সমস্ত তৈরি করুন। আইসিইউ 4 সি-র সাম্প্রতিক রিলিজগুলি ভিজ্যুয়াল স্টুডিও 2010 এর সাথে তৈরি করতে সমস্যা দেখা দিতে পারে যখন ডিবাগ এবং রিলিজ বিল্ড উভয়ের আউটপুট একই ডিরেক্টরিতে থাকে (যা পূর্বনির্ধারিত আচরণ)। একটি সম্ভাব্য কাজটি হ'ল বিল্ড অল (ডিবাগ বিল্ড বলুন) করা এবং তারপরে ২ য় কনফিগারেশনে (যেমন রিলিজ বিল্ড) সমস্তই একটি পুনর্নির্মাণ করা।
  4. যদি এক্স 64 এর জন্য বিল্ডিং করা হয় তবে আপনাকে এক্স 64 ওএস চালিয়ে যেতে হবে কারণ পোস্ট বিল্ড স্টেপগুলি রয়েছে যার মধ্যে এটির বিল্ডিং রয়েছে এমন 64-বিট অ্যাপ্লিকেশনগুলির কয়েকটি চালানো জড়িত।
  5. আপনার কাজ শেষ হয়ে গেলে বিকল্প ডিরেক্টরিটি সরান।
  6. উত্সাহ তৈরি করতে উপরের দ্বিতীয় নির্দেশাবলীর অনুসরণ করুন, তবে -sICU_PATH="C:\icu4c-4_8"পদক্ষেপ 5 এ b2 চালানোর সময় বিকল্পটিতে যুক্ত করুন ।

@ সোরিন: আপনার কেন কখনও তা বদলাতে হবে?
জাল্ফ

6
এটি লক্ষ করা উচিত যে এমনকি সম্পত্তি পত্রকগুলি দেখতে আপনার অবশ্যই সরঞ্জাম> সেটিংস> বিশেষজ্ঞ মোড নির্বাচন করতে হবে। অবশেষে এটি সন্ধান করার জন্য আমাকে কিছুটা গুগল করে তুলেছিল ...
জ্যাক দ্য হিউম্যান

@ কেটিসি: এটি আসলে "বিশেষজ্ঞ সেটিংস", সরঞ্জামগুলি> সেটিংস মেনু থেকে পাওয়া যায়। আমি ভিএসসি ++ ২০১০ এক্সপ্রেস সংস্করণ চালাচ্ছি এবং "বিশেষজ্ঞ সেটিংস" সক্রিয় না করে আপনি সম্পত্তি পত্রকগুলি দেখতে পারবেন না।
জ্যাক দ্য হিউম্যান

11
যদি আপনি পাশাপাশি x x ও win32 উভয়ই চান তবে সংশ্লিষ্ট বিল্ডগুলিতে "--stagedir = lib / win32" এবং "--stagedir = lib / x64" যুক্ত করুন।
এম টিবিটস

3
ভিজ্যুয়াল স্টুডিও ২০১০ এর জন্য বুস্ট তৈরি এবং কনফিগার করতে কীভাবে একটি ভিডিও টিউটোরিয়ালের জন্য এটি সহায়তা করতে পারে: youtube.com/watch?v=5AmwIwbTCM
ক্রিস্টোফ

158

বুস্ট ওয়েব সাইটের নির্দেশাবলী সহায়ক, যদিও এখানে একটি ঘনীভূত সংস্করণ এছাড়াও x 64 লাইব্রেরি তৈরি করে।

  • আপনি যদি কেবল নির্দেশের পৃষ্ঠার 3 নং ধারায় উল্লিখিত একটি গ্রন্থাগার ব্যবহার করছেন তবে এটি করতে হবে need (উদাহরণস্বরূপ, বুস্টটি ব্যবহার করতে iles ফাইলসাইটিমের সংকলন প্রয়োজন)) আপনি যদি সেগুলির কোনওটি ব্যবহার না করে থাকেন তবে কেবল আনজিপ করুন এবং যান।

32-বিট লাইব্রেরি তৈরি করুন

এটি বুস্ট শিরোলেখ ফাইলগুলিতে C:\Boost\include\boost-(version)এবং 32-বিট লাইব্রেরির অধীনে ইনস্টল করে C:\Boost\lib\i386। নোট করুন যে গ্রন্থাগারগুলির জন্য পূর্বনির্ধারিত অবস্থানটি C:\Boost\libকিন্তু আপনি i386যদি একাধিক আর্কিটেকচারের জন্য নির্মাণের পরিকল্পনা করেন তবে আপনি সেগুলি একটি ডিরেক্টরিতে রাখতে চান ।

  1. একটি নতুন ডিরেক্টরিতে আনজিপ বুস্ট করুন।
  2. একটি 32-বিট এমএসভিসি কমান্ড প্রম্পট শুরু করুন এবং বুস্টকে আনজিপ করা হয়নি এমন ডিরেক্টরিতে পরিবর্তন করুন।
  3. চালান: bootstrap
  4. চালান: b2 toolset=msvc-12.0 --build-type=complete --libdir=C:\Boost\lib\i386 install

    • ভিজ্যুয়াল স্টুডিও 2012 এর জন্য, ব্যবহার করুন toolset=msvc-11.0
    • ভিজ্যুয়াল স্টুডিও 2010 এর জন্য, ব্যবহার করুন toolset=msvc-10.0
    • ভিজ্যুয়াল স্টুডিও 2017 এর জন্য, ব্যবহার করুন toolset=msvc-14.1
  5. যোগ C:\Boost\include\boost-(version)আপনার অন্তর্ভুক্ত পথে ।

  6. যোগ C:\Boost\lib\i386আপনার লিব পথের দিকে।

-৪-বিট লাইব্রেরি তৈরি করুন

এটি বুস্ট শিরোলেখ ফাইলগুলিকে C:\Boost\include\boost-(version)এবং এর অধীনে libra৪- বিট লাইব্রেরি ইনস্টল করে C:\Boost\lib\x64। নোট করুন যে গ্রন্থাগারগুলির জন্য ডিফল্ট অবস্থান C:\Boost\libতবে আপনি সেগুলি একটি এর অধীনে রাখতে চানx64 যদি একাধিক আর্কিটেকচারের জন্য নির্মাণের পরিকল্পনা করেন তবে আপনি ডিরেক্টরিতে ।

  1. একটি নতুন ডিরেক্টরিতে আনজিপ বুস্ট করুন।
  2. একটি 64-বিট এমএসভিসি কমান্ড প্রম্পট শুরু করুন এবং বুস্টকে আনজিপ করা হয়নি এমন ডিরেক্টরিতে পরিবর্তন করুন।
  3. চালান: bootstrap
  4. চালান: b2 toolset=msvc-12.0 --build-type=complete --libdir=C:\Boost\lib\x64 architecture=x86 address-model=64 install
    • ভিজ্যুয়াল স্টুডিও 2012 এর জন্য, ব্যবহার করুন toolset=msvc-11.0
    • ভিজ্যুয়াল স্টুডিও 2010 এর জন্য, ব্যবহার করুন toolset=msvc-10.0
  5. যোগ C:\Boost\include\boost-(version)আপনার অন্তর্ভুক্ত পথে ।
  6. যোগ C:\Boost\lib\x64আপনার লিব পথের দিকে।

24
আপনি যদি সেগুলি নিজেই তৈরি করতে না চান তবে আপনি সোর্সফোর্জ থেকে প্রাক-বিল্ট বাইনারিগুলি ইনস্টল করতে পারেন: উত্সফোর্জন. नेट / প্রজেক্টস / বুস্ট / ফাইলস / বুস্ট- বাইনারি বুস্টের প্রতিটি সংস্করণের জন্য প্রতিটি ভিজ্যুয়াল স্টুডিও সংস্করণের জন্য ইনস্টলার রয়েছে (এতে 32 এবং 64 বিট উভয়)।
teeks99

Bit৪ বিট নির্মাণের সময় আর্কিটেকচার = x64 এর পরিবর্তে আর্কিটেকচার = x86 ব্যবহার করার কারণ কী? সম্পাদনা করুন:
সবেমাত্র হার্ড উপায়টি

আরে, @ teeks99 আমি আপনার দেওয়া লিঙ্কটি দেখেছি কিন্তু ভি 1.4.7 সংস্করণের জন্য আমি খুব বেশি ফাইল পেয়েছি, তবে কোনটি আমার ব্যবহার করা উচিত? কোনও একক ফাইল (লাইব্রেরি / ডিএল) আছে যা সর্বোত্তম কাজের সমস্ত ব্যবহারের জন্য উপযুক্ত?
gumuruh

2
ব্যবহার করে দেখুন sourceforge.net/projects/boost/files/boost-binaries/... এবং যদি আপনি 32 বিট বা 64 বিট প্রয়োজন উপর নির্ভর করে সেখানে 1.47.0 জন্য একটি ইনস্টলার খুঁজে পেতে সক্ষম হওয়া উচিত। সেখানে ভিতরে আপনি প্রচুর ডিএলএল পাবেন, এটি ঠিক কীভাবে কাজ করে। তবে, যতক্ষণ আপনি আপনার ভিজ্যুয়াল স্টুডিও প্রকল্পটিকে সঠিক ডিরেক্টরিতে নির্দেশ করছেন ততক্ষণ সেখানে কতজন রয়েছে তা বিবেচ্য নয় কারণ এটি স্বয়ংক্রিয়ভাবে প্রয়োজনীয় একটি (গুলি) বেছে নেবে।
teeks99

20

আপনি আর্গুমেন্ট হিসাবে% NUMBER_OF_PROCESSORS% ব্যবহার করতে পারেন এটি আপনার সমস্ত কোরের ব্যবহার করবে। আমার কোয়াড কোরগুলিতে জিনিসগুলিকে সুপার দ্রুত করে তোলে।


3
এবার মিলিয়ন বার .... এটি শেষ পর্যন্ত আমি ভিএস2015 এর জন্য সম্মিলিত প্রচেষ্টা হিসাবে গিয়েছিলাম: b2 -j% NUMBER_OF_PROCESSORS% টুলসেট = এমএসভিসি-14.0 - বিল্ড টাইপ = সম্পূর্ণ --libdir = সি: oo বুস্ট \ লাইব \ x64 আর্কিটেকচার = x86 অ্যাড্রেস-মডেল = 64 ইনস্টল
কায়লিফ্রি_ডোনেক

পাওয়ারশেলগুলির জন্য এটি: -j "$ এনভি: NUMBER_OF_PROCESSORS"
অসিলন

14

আমি নিম্নলিখিত কৌশলটি সুপারিশ করতে পারি: একটি বিশেষ boost.propsফাইল তৈরি করুন

  1. সম্পত্তি পরিচালককে খুলুন Open
  2. আপনার প্রকল্প নোডে ডান ক্লিক করুন, এবং 'নতুন প্রকল্পের সম্পত্তি শীট যুক্ত করুন' নির্বাচন করুন।
  3. একটি অবস্থান নির্বাচন করুন এবং আপনার সম্পত্তি শীটটির নাম দিন (উদাহরণস্বরূপ সি: \ মাইস্টফ \ বুস্ট.প্লপস)
  4. অনুসন্ধানের পথে অতিরিক্ত অন্তর্ভুক্ত এবং লিব ফোল্ডারগুলি সংশোধন করুন।

এই পদ্ধতির এমন মান রয়েছে যা উত্সাহ কেবলমাত্র সেই প্রকল্পগুলিতে অন্তর্ভুক্ত থাকে যেখানে আপনি এটি স্পষ্টভাবে অন্তর্ভুক্ত করতে চান। আপনার যখন নতুন প্রকল্প রয়েছে যা বুস্ট ব্যবহার করে, তা করুন:

  1. সম্পত্তি পরিচালককে খুলুন Open
  2. প্রকল্প নোডে ডান ক্লিক করুন, এবং 'বিদ্যমান সম্পত্তি শীট যুক্ত করুন' নির্বাচন করুন।
  3. বুস্ট সম্পত্তি পত্রক নির্বাচন করুন।

সম্পাদনা করুন (@ জিম-ফ্রেড থেকে নিম্নলিখিত সম্পাদনা):

ফলস্বরূপ 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\ডিরেক্টরিতে অবস্থিত হতে পারে ।


13

বুস্টের কোন অংশগুলি আপনার দরকার? অনেকগুলি স্টাফ টিআর 1 এর অংশ যা ভিজ্যুয়াল স্টুডিওতে প্রেরণ করা হয়, তাই আপনি কেবল বলতে পারেন, উদাহরণস্বরূপ:

#include <tr1/memory>

using std::tr1::shared_ptr;

জেমসের মতে, এটিও কাজ করা উচিত (সি ++ 0 এক্সে):

#include <memory>

using std::shared_ptr;

5
ভিএস 2010-তে, টিআর 1 লাইব্রেরিগুলি যে সি ++ 0x এর অংশ হয়ে উঠছে stdসেগুলি সি ++ 0x স্ট্যান্ডার্ডে থাকায় সেগুলি সমস্তই নেমস্পেসে স্থানান্তরিত হয়েছে । (আমি মনে করি তারা সম্ভবত std::tr1নেমস্পেসে রয়েছে পিছনের সামঞ্জস্যের জন্য)।
জেমস ম্যাকনেলিস

6

এই থ্রেডটি প্রায় কিছুটা সময় হয়েছে, এবং আমি ভেবেছিলাম আপনার নির্দিষ্ট হার্ডওয়্যারটিতে যত দ্রুত সম্ভব বুস্ট তৈরি করতে আমি কীভাবে কিছু যুক্ত করব।

আপনার যদি যথাক্রমে 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

-জে 7 বিল্ড 6-কোর উপর

কনফিগ

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)

আমি নোট করেছি যে -৪-বিট বিল্ডটি কিছুটা বেশি সময় নেয়, তাদের এবং আপডেটের জন্য আমার একই তুলনা করা দরকার।


5

এছাড়াও একটি সামান্য দ্রষ্টব্য: আপনি সংকলন-সময় হ্রাস করতে চাইলে আপনি পতাকাটি যুক্ত করতে পারেন

-j2

একই সময়ে দুটি সমান্তরাল বিল্ড চালানোর জন্য। এটি কোনও সিনেমা দেখার জন্য এটি হ্রাস করতে পারে;)


2
কীভাবে ব্যবহার -j2করবেন তা ব্যাখ্যা করে আপনার উত্তরের মান বাড়বে।
ST3

5

বুস্ট ডাউনলোড করুন : 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


4

এখানে আমি বুস্টটি ব্যবহার করতে সক্ষম হয়েছি:

  1. বুস্ট লাইব্রেরির জিপ সংস্করণটি ডাউনলোড এবং এক্সট্রাক্ট করুন।
  2. বুটস্ট্র্যাপ.ব্যাট ফাইলটি চালান এবং তারপরে bjam.exe চালান।
  3. প্রায় 30 মিনিট বা তার জন্য অপেক্ষা করুন।
  4. ভিজ্যুয়াল স্টুডিওতে একটি নতুন প্রকল্প তৈরি করুন।
  5. প্রকল্পে যান -> বৈশিষ্ট্য -> লিঙ্কার -> সাধারণ -> অতিরিক্ত গ্রন্থাগার ডিরেক্টরি এবং অ্যাড বুস্ট / পর্যায় / lib এটি নির্দেশিকা।
  6. প্রকল্পে যান -> বৈশিষ্ট্য -> সি / সি ++ -> সাধারণ -> অতিরিক্ত অন্তর্ভুক্ত ডিরেক্টরি এবং উন্নত যোগ করুন ডিরেক্টরি ।

আপনি কোনও ত্রুটি ছাড়াই আপনার প্রকল্পটি তৈরি করতে সক্ষম হবেন!


3

এখানে অবস্থিত উইন্ডোজ ইনস্টলারগুলি আমার পক্ষে নিখুঁতভাবে কাজ করেছিল। আমি নিম্নলিখিত পদক্ষেপ নিয়েছি:

  1. শেষ না হওয়া পর্যন্ত ইনস্টলেশন উইজার্ডটি অনুসরণ করুন।
  2. ভিজ্যুয়াল স্টুডিও চালান।
  3. একটি নতুন সি ++ প্রকল্প তৈরি করুন
  4. প্রকল্পের বৈশিষ্ট্যগুলি খুলুন (সমাধান এক্সপ্লোরারটিতে প্রকল্পের নামটি ডান-ক্লিক করে পাওয়া যাবে)
  5. "সি / সি ++> জেনারেল> অতিরিক্ত অন্তর্ভুক্ত ডিরেক্টরিগুলি" এর অধীনে এমন পাথ যুক্ত করুন যেখানে রুট ডিরেক্টরিকে বুস্ট করে। আমার সংস্করণটির জন্য ডিফল্ট ছিল সি: \ স্থানীয় \ বুস্ট_1_63_0। "বুস্ট" এর পরে সংখ্যাটি বুস্টের সংস্করণ।
  6. প্রকল্পের বৈশিষ্ট্যগুলিতে, "লিঙ্কার> অতিরিক্ত গ্রন্থাগার ডিরেক্টরিগুলি" এর অধীনে গ্রন্থাগার ফাইলগুলির জন্য ডিরেক্টরি যুক্ত করুন। আমার সংস্করণটির জন্য ডিফল্ট ছিল সি: \ স্থানীয় \ boost_1_63_0 \ lib64-msvc-14.0। "লিবিব" এর পরে সংখ্যাটি বিল্ড টার্গেটের সাথে সম্পর্কিত (ভিজুয়াল স্টুডিওতে 32 বিট বা 64 বিট) এবং "এমএসভিসি" এর পরে সংখ্যাটি ভিজ্যুয়াল স্টুডিওর সংস্করণের সাথে সম্পর্কিত (14.0 ভিজ্যুয়াল স্টুডিও 2015 সম্পর্কিত, তবে আমি এটি 2017 ভিজ্যুয়াল স্টুডিও সহ ব্যবহার করে)।

শুভকামনা!


2

কেটিসির খুব তথ্যমূলক মূল উত্তরটিতে একটি ছোট সংযোজন:

আপনি যদি নিখরচায় ভিজ্যুয়াল স্টুডিও সি ++ ২০১০ এক্সপ্রেস ব্যবহার করেন এবং সেইটিকে one৪-বিট বাইনারিগুলি সংকলন করতে সক্ষম হন এবং এখন এটি বুস্ট লাইবেরির একটি 64৪-বিট সংস্করণ ব্যবহার করতে চান তবে আপনি 32- বিট লাইব্রেরি (আপনার মাইলেজ অবশ্যই আলাদা হতে পারে, তবে আমার মেশিনে এটি দুঃখজনক ঘটনা)।

আমি নিম্নলিখিতটি ব্যবহার করে এটি ঠিক করতে পারলাম: উপরে বর্ণিত পদক্ষেপগুলি অন্তর্হিতের মধ্যে

  1. একটি 32-বিট এমএসভিসি কমান্ড প্রম্পট শুরু করুন এবং বুস্টকে আনজিপ করা হয়নি এমন ডিরেক্টরিতে পরিবর্তন করুন।
  2. চালান: বুটস্ট্র্যাপ

পরিবেশ স্থাপনের জন্য আমি 'সেতেনভ' এ একটি কল প্রবেশ করিয়েছি। একটি রিলিজ বিল্ডের জন্য, উপরের পদক্ষেপগুলি হয়ে যায়:

  1. একটি 32-বিট এমএসভিসি কমান্ড প্রম্পট শুরু করুন এবং বুস্টকে আনজিপ করা হয়নি এমন ডিরেক্টরিতে পরিবর্তন করুন।
  2. চালান: "সি: \ প্রোগ্রাম ফাইলগুলি \ মাইক্রোসফ্ট এসডিকে \ উইন্ডোজ \ v7.1 \ বিন \ setenv.cmd" / রিলিজ / এক্স 64
  3. চালান: বুটস্ট্র্যাপ

আমি এই তথ্যটি এখানে পেয়েছি: http://boost.2283326.n4.nabble.com/64-bit-with-VS-Exress-again-td3044258.html


আপনি কি জানেন যে এটি ভিএস2015 এর সম্প্রদায় সংস্করণে প্রযোজ্য কিনা? "ঠিকানা-মডেল = 64" সরবরাহ করা সত্ত্বেও আমি 32 বিট বাইনারিগুলি শেষ করছি বলে মনে হচ্ছে
paxos1977

@ paxos1977 দুঃখিত, আমি জানি না - আমি নিজে ভিএস ২০১৫ এর জন্য এটি চেষ্টা করি নি।
ইকোট্যাক্স

এটি স্পষ্টতই ডেস্কটপ সংস্করণের জন্য ভিএস 2015 এক্সপ্রেসে প্রযোজ্য, কেবল এটি নিজেই অভিজ্ঞতা নিয়েছেন। Setenv এর বিকল্প হ'ল "vcvarsall x86_amd64"
ইন্ট্রোবাইড

1

ভিজ্যুয়াল স্টুডিওতে আপনাকে শুরু করার একটি ন্যূনতম উদাহরণ:

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. আপনার ভিজ্যুয়াল স্টুডিও প্রকল্পের বৈশিষ্ট্যে অতিরিক্ত অন্তর্ভুক্ত ডিরেক্টরিগুলি সেট করুন:

প্রকল্পের সম্পত্তি

খুব সাধারণ উদাহরণের জন্য:

ভিজ্যুয়াল স্টুডিওতে কীভাবে বুস্ট লাইব্রেরি ইনস্টল করবেন

আপনি যদি পুরো বুস্ট লাইব্রেরিটি ব্যবহার করতে না চান তবে কেবল একটি উপসেট:

উইন্ডোজে বুস্ট লাইব্রেরির একটি উপসেট ব্যবহার করা

আপনি যদি বিশেষত এখন গ্রন্থাগারগুলি সম্পর্কে সঙ্কলন করতে চান তবে:

উইন্ডোজে বুস্ট সংকলিত লাইব্রেরি কীভাবে ব্যবহার করবেন


0

এছাড়াও, এমন একটি জিনিস রয়েছে যা আমি খুব দরকারী বলে মনে করি। আপনার বুথ পাথের জন্য পরিবেশ পরিবর্তনশীল ব্যবহার করুন। (উইন্ডোতে কীভাবে পরিবেশের ভেরিয়েবলগুলি সেট করা যায়, 7,8,10 এর জন্য নীচে লিঙ্ক করুন) BOOST_ROOT ভেরিয়েবলটি এখন সাধারণ জায়গা বলে মনে হয় এবং আপনি যেখানে মোছা ছাড়েন না সেই মূল পথে সেট করা থাকে।

তারপরে প্রোপার্টি, সি ++, সাধারণ, অতিরিক্ত অন্তর্ভুক্ত ডিরেক্টরিগুলি ব্যবহার করুন $(BOOST_ROOT)। তারপরে / আপনি যখন বুস্ট লাইব্রেরির একটি নতুন সংস্করণে চলে যান তবে আপনি আপনার পরিবেশ পরিবর্তনশীলটিকে এই নতুন সংস্করণে নির্দেশ করতে আপডেট করতে পারেন। আপনার আরও প্রকল্প হিসাবে, বুস্ট ব্যবহার করুন আপনাকে সেগুলির জন্য 'অতিরিক্ত অন্তর্ভুক্ত ডিরেক্টরিগুলি' আপডেট করতে হবে না।

আপনি একটি BOOST_LIB ভেরিয়েবলও তৈরি করতে পারেন এবং এটি যেখানে লিবসটি মঞ্চস্থ হয় সেখানে নির্দেশ করতে পারেন। একইভাবে লিঙ্কার-> অতিরিক্ত গ্রন্থাগার ডিরেক্টরিগুলির জন্য, আপনাকে প্রকল্পগুলি আপডেট করতে হবে না। আমার কাছে vs 10 দিয়ে নির্মিত কিছু পুরানো জিনিস এবং vs14 এর সাথে নতুন স্টাফ রয়েছে তাই একই ফোল্ডারে বুস্ট লিবের উভয় স্বাদই নির্মিত। সুতরাং আমি যদি কোনও প্রকল্প বনাম 10 থেকে বনাম 14 এ স্থানান্তর করি তবে আমাকে বুথ পাথগুলি পরিবর্তন করতে হবে না।

দ্রষ্টব্য: আপনি যদি পরিবেশের পরিবর্তনশীল পরিবর্তন করেন তবে এটি হঠাৎ কোনও উন্মুক্ত ভিএস প্রকল্পে কাজ করবে না। ভিএস শুরুতে ভেরিয়েবল লোড করে। সুতরাং আপনাকে ভিএস বন্ধ করতে হবে এবং এটি আবার খুলতে হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.