সি ++ বিল্ড সিস্টেম - কী ব্যবহার করবেন? [বন্ধ]


136

আমি সি ++ এ নতুন প্রকল্প শুরু করার দিকে তাকিয়ে আছি - আমার নিজের সময়ে প্রথম দিকে - এবং আমি উপলব্ধ বিল্ড সিস্টেমগুলি অনুসন্ধান করছি। এটি প্রদর্শিত হবে যে উত্তর "অনেক, এবং তারা সব ভয়ঙ্কর"।

আমি বিশেষত এর জন্য প্রয়োজনীয় বৈশিষ্ট্যগুলি হ'ল:

  1. সি ++ 11 সমর্থন
  2. ক্রস প্ল্যাটফর্ম (মূল লক্ষ্য হিসাবে লিনাক্স, তবে কমপক্ষে উইন্ডোজও তৈরি করতে সক্ষম)
  3. শালীন ইউনিট টেস্টিং সমর্থন
  4. কোড আলাদা করার জন্য একাধিক মডিউলগুলির জন্য সমর্থন
  5. কোড জেনারেশনের জন্য সমর্থন (asn1c বা প্রোটোবুফ ব্যবহার করে - এখনও 100% নিশ্চিত নয়)
  6. বজায় রাখা সহজ

এখন, আমি জানি যে সিএমকেক এবং অটোটুলগুলি খুব সহজে ব্যবহার করা হয় তাদের মধ্যে আমি 1-4 করতে পারি। সম্ভবত এসসিএনস এবং ওয়াফ এবং অন্যদের দম্পতির সাথেও। সমস্যাটি হ'ল আমি কখনই কোড জেনারেশনগুলি কীভাবে তাদের ব্যবহার করে সঠিকভাবে করতে পারি - সেগুলি উত্স ফাইল যা বিল্ড প্রক্রিয়াটি শুরু না হওয়া অবধি বিদ্যমান না, সুতরাং উত্স ফাইলগুলি যে বিল্ড সিস্টেমকে অবশ্যই এক্সিকিউটেবল কোডে রূপান্তর করতে সক্ষম হবে তবে বিল্ডটি শুরু হওয়া অবধি আসলে সম্পর্কে জানা নেই ... (বিশেষত এএসএন 1 সি একসাথে কাজ করতে সক্ষম হওয়া কয়েক ডজন শিরোলেখ এবং উত্স ফাইল তৈরি করে এবং ফাইলগুলির আসল সেটটি আপনার অ্যাসেন ফাইলের সামগ্রীর উপর নির্ভর করে) রয়েছে এগুলির যে কোনওটি রক্ষণাবেক্ষণ করা বিশেষত সহজ নয় - সিএমকে এবং অটটুলগুলির নিজস্ব স্ক্রিপ্টগুলির একটি বিশাল সেট রয়েছে যা তাদের কাজ করার জন্য আপনাকে পরিচালনা করতে হবে,

সুতরাং - এই জাতীয় কিসের জন্য কোন বিল্ড সিস্টেমগুলি সুপারিশ করা হয়? নাকি আমি আপাতত মেক ফাইল এবং শেল স্ক্রিপ্ট আটকে দেব?


11
"মনে হবে উত্তরটি 'অনেকগুলি, এবং তারা সমস্ত ভয়ঙ্কর'" আমার ধারণাটিও ('আমার দৃষ্টিকোণ থেকে ভয়াবহ' যোগ করার সাথেও; আমি এই জাতীয় শর্তাদির সাথে খুব বেশি সাধারণীকরণ করতে পছন্দ করি না )। আমি প্রকৃতপক্ষে সেই কারণেই আমার নিজের সেট আপ করেছি এবং এটি প্রত্যাশার চেয়ে ভাল কাজ করেছে যেহেতু এটি আমার যা ইচ্ছা তা করে এবং আমি কীভাবে সবসময় জিনিসগুলিকে কাজ করতে চাইতাম। কিছুটা সময় ব্যয় করার জন্য, আপনাকে সম্ভবত বিদ্যমান সরঞ্জামগুলির মধ্যে দিয়ে যেতে হবে এবং এমন একটি চয়ন করতে হবে যা আপনাকে অন্যের তুলনায় কম মাথা ব্যথা দেয়।
খ্রিস্টান স্টিবার

4
ব্যবহার করে দেখুন পুংমেষ
কেরেরেক এসবি

এছাড়াও দেখুন: stackoverflow.com/q/3349956
ergosys

8
কোন বিল্ড সিস্টেম থেকে আপনি কী ধরণের সি ++ 11 সমর্থন আশা করেন? এইটি আপনি কম্পাইলার থেকে পেয়েছেন, বিল্ড সিস্টেমটি প্রকৃত উত্স ফাইলগুলি বিশ্লেষণ বা এমনকি পড়তে পারে না, কেবল যার প্রয়োজন তাদের কাছে চলে যায়, না?
বারুচ

5
সত্য, তবে সংকলককে সি ++ 11 সমর্থন ব্যবহার করা সহজ করে বলা ভাল। g ++ এর জন্য একটি পতাকা দরকার, আলাদা সেট বেঁধে দিতে হবে, এমএসভিসি স্পষ্টতই এর কোনও প্রয়োজন নেই। এছাড়াও, সি ++ ১১ টি বৈশিষ্ট্য কী রয়েছে তা সনাক্ত করার জন্য সহায়তা কার্যকর হবে কারণ এটি সংকলকগুলির মধ্যেও পৃথক ...
গ্রাহাম

উত্তর:


117

+1 এর জন্য, "অনেকগুলি এবং তারা ভয়ঙ্কর।"

তবে, "ধনীতম" এবং "সর্বাধিক স্কেলেবল" সম্ভবত সিএমকে , এটি একটি মেকফিল -জেনারেটর (এছাড়াও স্থানীয় এমএসভিসি ++ *.proj/ জেনারেট করে *.sln)। অদ্ভুত বাক্য গঠন, তবে একবার এটি শিখলে, এটি আপনাকে বিভিন্ন প্ল্যাটফর্মের জন্য সুন্দরভাবে বিল্ড তৈরি করতে দেয়। আমি যদি "স্টার্ট-ফ্রেশ" হয়ে থাকি তবে আমি সম্ভবত ব্যবহার করতাম CMake। এটি আপনার তালিকাটি পরিচালনা করতে পারে, যদিও আপনার "কোড-প্রজন্ম" আপনি কী করতে চান তার উপর নির্ভর করে বিল্ড সিস্টেমের বাইরে "নিজের জীবনযাত্রা" নিতে পারে। (নিচে দেখ.)

সাধারণ প্রকল্পগুলির জন্য, কিউমেক জেনারেটরটি ঠিক আছে ( কিউমেক ব্যবহারের জন্য আপনাকে কিউটি লাইব্রেরি ব্যবহার করার দরকার নেই)। তবে, আপনি "সরল" - কোড উত্পন্নকরণ এবং "অতিরিক্ত-পর্যায়সমূহ" এর বর্ণনা দিচ্ছেন না এর অর্থ সম্ভবত CMakeআপনার নিজের এক্সটেনশনের জন্য সমৃদ্ধ এপিআই সহ কিছু Sconsবা ( যেমন Waf) চান।

আমরা কর্মক্ষেত্রে স্ক্যান ব্যবহার করি । এটি "বুলেট-প্রুফ-বিল্ডস" তৈরি করে তবে এটি সত্যিই ধীর। অন্য কোনও সিস্টেমের মতো বুলেট-প্রুফ হবে না Scons। কিন্তু, এটি ধীর। এটি পাইথনে লেখা হয়েছে এবং আমরা আমাদের "ওয়ার্কস্পেস-অর্গানাইজেশন" (যেখানে আমরা কেবলমাত্র মডিউল নির্ভরতা নির্দিষ্ট করি) এর জন্য ইন্টারফেসটি প্রসারিত করেছি এবং এটি Sconsডিজাইনের অভিপ্রায় (পাইথনের মাধ্যমে এই ধরণের এক্সটেনশন) এর অংশ। সুবিধাজনক, তবে বিল্ডগুলি ধীর। আপনি বুলেট-প্রুফ বিল্ডগুলি পান (যে কোনও বিকাশকারী বাক্স চূড়ান্ত প্রকাশ করতে পারে), তবে এটি ধীর গতির। এবং, এটি ধীর। ভুলে যাবেন না আপনি যদি Sconsএটি ব্যবহার করেন তবে এটি ধীর। এবং, এটি ধীর।

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

হ্যাঁ, তারা সব ভয়ঙ্কর।

[কোড জেনারেশন সম্পর্কে]

Scons"পর্যায়ক্রমে" কাজ করে এবং তারা "কিছুটা স্থিতিশীল"। এটি বিল্ডের অংশ হিসাবে উত্পন্ন কোডটি তৈরি করতে পারে (লোকেরা এটি বিভিন্ন উপায়ে কয়েকজন করে করছেন) তবে এটি "খুব স্ক্রিন-জাতীয় কিছু" হিসাবে বর্ণিত হয়েছে।

যদি এটি সাধারণ "কিছু ফাইল প্রাকপ্রসেস করুন এবং উত্স ফাইলগুলি উত্পন্ন করুন", তবে কোনও বিগী নেই (আপনার কাছে প্রচুর বিকল্প রয়েছে এবং এই কারণেই qmakeলিখিত ছিল - ফাইলগুলির mocপ্রিপ্রোসেসিংয়ের জন্য *.hpp/*.cpp)।

তবে, আপনি যদি এটি "ভারী পদ্ধতিতে" করছেন, আপনার নিজের স্ক্রিপ্ট করা দরকার। উদাহরণস্বরূপ, আমাদের মধ্যে বিল্ড-এর-অ-অংশ-হিসাবে তৈরি স্ক্রিপ্ট রয়েছে যা ডাটাবেসগুলি অনুসন্ধান করে এবং "স্তর" (traditionalতিহ্যগত 3-স্তরের অ্যাপ্লিকেশন বিকাশে) এর মধ্যে ইন্টারফেসে সি ++ ক্লাস তৈরি করে। একইভাবে, আমরা আইডিএলগুলির মাধ্যমে সার্ভার / ক্লায়েন্ট উত্স কোড এবং একাধিক ক্লায়েন্ট / সার্ভারকে বিভিন্ন সংস্করণ (একই "ক্লায়েন্ট" বা "সার্ভার" এর জন্য) এক সাথে চলার অনুমতি দেওয়ার জন্য এম্বেড করা সংস্করণ তথ্য তৈরি করেছি। উত্পন্ন উত্স কোড প্রচুর। আমরা এটি "দ্য বিল্ড-সিস্টেম" "ভান" করতে পারতাম, তবে সত্যই এটি "কনফিগারেশন ম্যানেজমেন্ট" এর একটি অ-তুচ্ছ-অবকাঠামো, যার অংশটি "বিল্ড-সিস্টেম" is উদাহরণস্বরূপ, এই সিস্টেমটি, "টেক-ডাউন" এবং "


37
আমি স্ক্যানগুলিও পছন্দ করি - তবে আমি মনে করি এটি ধীর।
লোথার

1
কোড জেনারেট হওয়ার পরে alচ্ছিক দ্বিতীয় পর্যায়ে করার জন্য আপনি মেকফাইল মোড়কের সাহায্যে কোড জেনারেশন পরিচালনা করতে সিএমকে পেতে পারেন। : আমি কোড নির্মাণ পর পূর্ণ নির্ভরতা ট্র্যাকিং, গোড়ার দিকে প্রস্থান সমর্থন করার জন্য পুনরায় cmake, ইত্যাদি দেখুন ট্রিগার করতে সক্ষম হন javaglue.com/javaglue.html#tag:JavaGlue এবং code.google.com/p/javaglue
sdw

3
প্রায় 2 বছর পরে, আপনি এখনও এসসিএনকে ধীর বলে বিবেচনা করছেন? আমি যখন কোনো বিল্ড সিস্টেম নির্বাচনে হয়েছিল, আমি জুড়ে এসেছিল এই এবং এটি আমার সিদ্ধান্ত SCons সঙ্গে যেতে অবদান।
জেবেন্টলে

2
@ বেন, এটি সত্য, তবে এটিও ধীর।
চার্লি

2
যে কেউ এটি দেখে মেসনকে (যা নিনজা ব্যবহার করে) বিবেচনা করা উচিত।
ম্যাথু ডি শোলফিল্ড 21

33

আপনি এখন গ্রেডল ব্যবহার করতে পারেন: https://docs.gradle.org/current/userguide/native_software.html

আমি প্রাথমিকভাবে এটি পোস্ট করার পরে বছরগুলিতে এটি বেশ খানিকটা পরিপক্ব হয়েছে বলে মনে হয়। প্রকল্পটি "ইনকিউবেটিং" হচ্ছে বলে পৃষ্ঠাটি অদৃশ্য হয়ে গেছে, তবে আমি এই স্থিতিটি সরানোর কোনও আনুষ্ঠানিক ঘোষণা পাই না।


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

C ++ সমর্থন করার ক্ষেত্রে গ্রেডের আগ্রহ দেখতে আকর্ষণীয়। আশা করি তারা সি ++ প্রকল্পের জন্য একটি দুর্দান্ত এবং দৃ building় বিল্ডিং সিস্টেম তৈরি করেছে যা আমরা প্রত্যেকে অনুপস্থিত।
hbobenicio

@ স্পিড ধন্যবাদ, আপডেট হয়েছে।
নেট গ্লেন

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

1
আমি গ্র্যাডলের সাথে যুদ্ধ করতে গত দুই দিন অতিবাহিত করেছি, কেবল একটি "হ্যালো ওয়ার্ল্ড" লাইব্রেরি, অ্যাপ্লিকেশন এবং গেটস তৈরি করার চেষ্টা করেছি এবং আমি এটি নতুন প্রকল্পের জন্য সুপারিশ করতে পারব না recommend সরঞ্জামগুলি সমস্ত সেখানে থাকতে পারে, তবে ডকুমেন্টেশন (সন্দেহের সুবিধা দিচ্ছে না)। আপনারা যারা এটি কার্যকর করতে পারেন তারা কি আপনার প্রিয় সংস্থানগুলিতে ইঙ্গিত করতে পারেন?
jwm

16

আমি এগুলি পেয়েছি, আমি এখনও ব্যক্তিগতভাবে সেগুলি সব ব্যবহার করি নি:

নিনজা , গতিতে দৃষ্টি নিবদ্ধ করা একটি ছোট বিল্ড সিস্টেম। গুগল এখন মেক: লিঙ্কের পরিবর্তে অ্যান্ড্রয়েড তৈরি করতে নিনজা ব্যবহার করে ।

ঝাঁকুনি , একটি শক্তিশালী এবং দ্রুত বিল্ড সিস্টেম।

টুপ , একটি উচ্চ কার্যকারিতা বিল্ড সিস্টেম। অ্যালগরিদমিক ভিত্তিক নকশা। টুপ বিশ্লেষণ

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


1
টুপটি প্রতীক অনুসন্ধানগুলিকে বিশৃঙ্খলা করবে, অন্য কোনও বিল্ড সিস্টেমের সাথে সুন্দরভাবে খেলবে না (আসলেই সত্যই), এলোমেলো আউটপুটগুলির সাথে সুন্দরভাবে খেলবে না (যেমন javacঅভ্যন্তরীণ ক্লাসগুলির দ্বারা উত্পন্ন ক্লাসগুলি, যা class$1.classফাইলগুলিতে পৃথক করা হয় ), খারাপভাবে লিখিত এবং সিস্টেম হ্যাকগুলি যা করে তা অর্জন করতে ব্যবহার করে। এটি ছোট সিস্টেমের জন্য দুর্দান্ত; বৃহত্তর প্রকল্পের জন্য অকল্পনীয়।
কিউস - মনিকি 20

@ কিউস: আপনি কি আউটপুটটিকে আপনার ভাণ্ডার থেকে আলাদা রাখতে পারবেন না?
কেরেক এসবি

1
@ কেরেকএসবি আপনি করতে পারেন, তবে এটি প্রতীক অনুসন্ধানে সমস্যা নয়। টুপ FUSE ব্যবহার করে এবং এর নিজস্ব মিডলওয়্যারটিকে মাউন্ট করে .tup/mnt। এরপরে .tup/mnt/@tupjob-XXXXXবিল্ড কনফিগারেশন প্রয়োগ করে রিড / রাইটগুলি নিরীক্ষণের জন্য ওয়ার্কিং ডিরেক্টরি হিসাবে একটি ফোল্ডারে (যেমন ) সমস্ত বিল্ড প্রোগ্রাম চালায় । এটি ভালভাবে কাজ করে, যদি না পথটি একেবারে সংরক্ষণ করা হয় (যেমন প্রতীক সহ)। আপনি যখন বাইনারি সংকলন করেন, প্রতীক পাথটি বাইনারি নিজেই সংরক্ষণ করা হয়। এর অর্থ যখন জিডিবি প্রতীকগুলি লোড করার চেষ্টা করে তখন এটি সেই tupjobপথটির সন্ধান করে, যা ত্রুটি সৃষ্টি করে না।
কিউস - মনিিকা

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

11

স্ক্যানগুলি খুব বন্ধুত্বপূর্ণ এবং নমনীয় সিস্টেম, তবে আপনি ঠিক বলেছেন, লোথার, এটি সত্যই ধীর।

পাইথনে লেখা প্রোগ্রামগুলির কর্মক্ষমতা বাড়ানোর একটি উপায় আছে। জেআইটির এই ব্যবহার। সমস্ত পরিচিত প্রকল্পগুলির মধ্যে পাইপাই একটি অত্যন্ত শক্তিশালী, দ্রুত বর্ধনশীল এবং প্রেরণাদিত জেআইটি-সমর্থিত - পাইথন ২.on বাস্তবায়ন। পাইথন ২.7 এর সাথে পাইপাই সামঞ্জস্যতা কেবল আশ্চর্যজনক। তবে স্ক্যানগুলি পাইপাই সামঞ্জস্য উইকিতে অসমর্থিত প্রকল্প হিসাবে ঘোষণা করেছে । অন্যদিকে ওয়াফ পাইথন-ভিত্তিক অটোটুলস সসেসর হিসাবে মডেলিং, পিপাই অবকাঠামো দ্বারা সম্পূর্ণরূপে সমর্থিত। আমার প্রকল্পগুলিতে পাইপাইতে রূপান্তরকালে সমাবেশের গতি 5-7 গুণ বেড়েছে। আপনি পাইপাই থেকে পারফরম্যান্সের প্রতিবেদনগুলি দেখতে পাচ্ছেন

আধুনিক এবং তুলনামূলকভাবে দ্রুত বিল্ড সিস্টেমের জন্য ওয়াফ ভাল পছন্দ।


এটি লক্ষণীয় যে স্ক্যানগুলি এখন লিঙ্কযুক্ত উইকি পৃষ্ঠায় "সামঞ্জস্যপূর্ণ" হিসাবে চিহ্নিত হয়েছে, সুতরাং স্পষ্টতই এটি এখন বুদ্ধিমান পাইপাইয়ের কাজ করে।
ভুয়া নাম

8

গুগল বিল্ড সিস্টেম একটি ভাল বিকল্প: http://basel.io/


3
"ক্রস প্ল্যাটফর্ম (লিনাক্স মূল লক্ষ্য হিসাবে, তবে কমপক্ষে উইন্ডোজও তৈরি করতে সক্ষম)"। বাজেলের এফএকিউতে বলা হয় "আমরা বর্তমানে সক্রিয়ভাবে উইন্ডোজ সমর্থন উন্নয়নে সক্রিয়ভাবে কাজ করছি, তবে এটি এখনও ব্যবহারযোগ্য না হওয়ার উপায়" "
মাইকেল মরোজেক

3
আমি নিজে নিশ্চিত না যে এটি সিস্টেম নিজেই বা প্রকল্পটি স্থাপনকারী লোক, তবে এটি @ কাজ ব্যবহার করে আমার পিছনে বড় ব্যথা হয়েছিল। এটি অত্যন্ত নমনীয় (এই অর্থে যে এটি কেবল স্টাফ করার এক উপায়কে সমর্থন করে, প্রায়শই সাব্পটিমাল, যদি ভয়ঙ্কর না হয়), যথেষ্ট শক্তিশালী নয়, দুর্বল নথিভুক্ত (বেসিক কেসগুলি বাদ দিয়ে), সামান্য সম্প্রদায় রয়েছে তাই আশা করবেন না যে স্ট্যাকওভারফ্লো আপনাকে সংরক্ষণ করবে এটি নিজেই নির্ভরতা, বেশিরভাগ সিস্টেমে, ইত্যাদি ইত্যাদির বেশিরভাগ আইডিইয়ের সাথে ভাল খেলবেন না তাই আপনি যদি গুগলের অনুরাগ না হন তবে এ থেকে দূরে থাকুন (বিটিডব্লু এর একটি ফেসবুক সংস্করণ রয়েছে, যার নাম বাক - ফেসবুক অনুরাগীদের জন্য)
স্লাভা

আরে, আমি সিএমকে কাজ করার চেষ্টা করে weeks সপ্তাহ ব্যয় করার পরেও সত্যই এটি ব্যবহার করা সহজ পেয়েছি । আমি এটি তৃতীয় পক্ষের নির্ভরতা ডাউনলোড করে তাদের সংকলন করতে চেয়েছিলাম (যেহেতু আমি পাইথন এবং জাভাস্ক্রিপ্ট থেকে দুর্দান্ত বিল্ড সরঞ্জামগুলির জন্য ব্যবহৃত হয়েছিল)। এটি এটিকে সহজ করে তুলেছে তবে ফিরে আসার ড্র রয়েছে যা আপনাকে সমর্থন করতে পারে না এমন 3 য় পক্ষের জন্য আপনার নিজের বেজেল ফাইলগুলি লিখতে হতে পারে। এগুলি আইজে রেকনে সংরক্ষণ করার জন্য তাদের একটি কেন্দ্রীয় রেপো দরকার।
সিপিল

6

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

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

জনতার মতে এসসিএনগুলি খুব ধীর, তবে একটি প্রকল্পের মাঝামাঝি আমি গতি বাড়ানোর মাধ্যমে মেক এবং এসসিএনের মধ্যে কোনও পার্থক্য দেখিনি। পরিবর্তে, স্ক্যানস সমান্তরাল বিল্ডগুলির সাথে ভালভাবে কাজ করেছেন, যখন মেকটি এটির সাথে বড় ঝামেলা করে।

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

একটি সাধারণ প্রকল্পের জন্য সিএমকেও একটি ভাল পছন্দ।


3
এখানে আমার সমস্যা হ'ল আমি নষ্ট হয়ে গেছি। আমি পেশায় একটি জাভা বিকাশকারী এবং জাভা বিশ্বের গ্র্যাডলের মতো সরঞ্জামগুলি হ'ল সি ++ বিকাশের জন্য সত্যই আমি চাই tools আমি একটি একক লাইন বিল্ড ফাইল ব্যবহার করে কোনও বাহ্যিক নির্ভরতা ছাড়াই গ্রেড প্রকল্প স্থাপন করতে পারি। এটাই. বহু নির্ভরতা রয়েছে এমন বহু-মডিউল প্রকল্পগুলি এখনও করা সহজ এবং সাধারণ সি ++ প্রকল্পের চেয়ে অনেক কম কনফিগারেশনে ওজন করা যায় ...
গ্রাহাম

স্ক্যান ব্যবহার করে এমন অন্যান্য প্যাকেজগুলি তৈরি করতে আমার সমস্যা হয়েছিল কারণ এটিতে সিস্টেম-কনফিগারেশনের পতাকা যেমন -আইআর এবং -ল লাইব্রেরি ডায়ার অন্তর্ভুক্ত করে না। এটি সিএফএলএজিএস নেবে না, আপনাকে প্রায়শই প্রতিটি স্কোন স্ক্রিপ্টটি সঠিক জায়গায় দেখার জন্য পরিবর্তন করতে হয়।
এসাইক্লিক

5

শুধু আমার সেন্ট যোগ করতে: প্রিমেক

http://industriousone.com/premake

উইকিতে একটি উত্সর্গীকৃত ওয়েবপৃষ্ঠাও রয়েছে।


2
দুর্ভাগ্যক্রমে প্রিমেক ওপির প্রয়োজনীয়তা অনুযায়ী কোড জেনারেশনকে সমর্থন করে না। এবং ইউনিট টেস্টিংয়ের জন্য আমি এর সমর্থনকে "सभ्य" বলব না, যদিও আপনি করতে পারেন এমন কয়েকটি জিনিস।
এরগোসিস

@ এরগোসিস আমি লক্ষ্য করেছি যে পিপড়ার কথা উল্লেখ করা হয়নি, antএটি সি / সি ++ সমর্থন করে, দেখুন এটি আপনার পক্ষে ভাল কিনা, এটি আমার শেষ নাম, আমি কেবল এই জন্য মেকফিলস এবং ক্ল্যাক ব্যবহার করি।
ব্যবহারকারী 827992

2

আপনি সিলডিং ব্যবহার করতে পারেন । দ্রষ্টব্য, তবে এটি কেবল এই মুহুর্তে সি সমর্থন করে এবং এটি লেখকের ইউনিটি এবং সিএমক পরীক্ষার ফ্রেমওয়ার্কগুলিতে দৃ tight়তার সাথে মিলিত হয়।

মোটামুটি সহজেই সি ++ কম্পাইলার এবং ইউনিট টেস্টিং / উপহাসের কাঠামোর সাথে কাজ করার জন্য এটি কাঁটাচামচ এবং সংশোধন করা যেতে পারে।

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

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