অপ্রচলিত হিসাবে সরাসরি বিবেচনা করুন? [বন্ধ]


31

তাই আমি সরাসরি মেকফিলগুলি তৈরি করার বিষয়ে এবং অনেক মন্তব্য করা / পোস্ট ইত্যাদির মধ্যে আসছি, এবং এটি 2015 সালে কী করা একটি নির্বোধ কাজ I আমি সিএমকেকের মতো সরঞ্জামগুলি সম্পর্কে অবগত actually জিনিসটি হ'ল, সিএমকে কেবল আপনার জন্য মেকফিল তৈরি করছে এবং এটি নিজে করার টেডিয়াম অপসারণ করতে সহায়তা করছে। অবশ্যই এটি আরও অনেক দুর্দান্ত বৈশিষ্ট্য যুক্ত করে ... তবে এটি এখনও শেষ পর্যন্ত একটি মেকফাইল।

সুতরাং আমার প্রশ্নটি হ'ল, সম্পূর্ণ 'মেক ইউটিলিটি'র বিষয়ে উল্লেখ করা' অপ্রচলিত 'আলাপ কী, বা আপনার নিজের মেকফিলগুলি নিজেই লেখার ধারণা? আমি মোটেও সি / সি ++ বিকাশের জন্য একটি আইডিই ব্যবহার করি না (কেবল ইম্যাকস), তাই আমি সবসময় মেকফিলস লিখেছি।

যদি মেককে পুরানো বিবেচনা করা হয়, ছোট, ব্যক্তিগত প্রকল্পগুলি তৈরি করতে কোন সি / সি ++ দেব ব্যবহার করা উচিত?


8
ছোট, ব্যক্তিগত প্রকল্পগুলির makeজন্য মেকফাইল ছাড়াই যথেষ্ট। কী ঝামেলা?
ott--

8
ডেস্কটপ এবং সার্ভার উভয়ই আমার ফ্রিবিএসডি সিস্টেমে উপলব্ধ সফ্টওয়্যারগুলির প্রতিটি টুকরোতে একটি মেকফাইল রয়েছে যা 'মেক' দ্বারা শুরু করা হয়েছে। না। 'মেক' অপ্রচলিত নয়।
রব

3
লোকেরা আইডিই ব্যবহার করতে পারে, কিন্তু যদি তাদের আইডিইগুলি makeপ্রথম লেখা হওয়ার 40 বছর পরে মেকফিলস ব্যবহার করে প্রকল্পগুলি সমর্থন করতে না পারে তবে তাদের আশেপাশে লোকেরা কাজ করবে না।
মাইলস রাউট

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

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

উত্তর:


30

বড় পার্থক্য হ'ল সিএমকে ক্রস-প্ল্যাটফর্ম মেটা-বিল্ড সিস্টেম। একটি একক সিএমকে প্রকল্পটি ইউনিক্স / লিনাক্স মেকফিল, উইন্ডোজের জন্য একটি ভিজ্যুয়াল স্টুডিও প্রকল্প, ম্যাকের জন্য একটি এক্সকোড প্রকল্প এবং আপনি ব্যবহার করতে বা সমর্থন করতে চান এমন প্রায় কোনও নন-মেটা বিল্ড সিস্টেম তৈরি করতে পারে।

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


9
পসিক্সও makeক্রস প্ল্যাটফর্ম।
ব্লারফ্ল

6
@ ব্লারফ্লিল এটি সত্য হতে পারে তবে সাধারণত আপনি যে প্রকল্পের প্ল্যাটফর্মটিকে লক্ষ্য করে যাচ্ছেন সেগুলি পজিক্স-সম্মতিযুক্ত এমনকি আপনার প্রকল্পটি সংকলন করতে এবং / অথবা লিঙ্ক করার জন্য আপনার যে কমান্ড লাইনগুলি ব্যবহার করতে হবে তা আপনি অবশ্যই প্ল্যাটফর্ম নির্দিষ্ট করে দেখতে পাবেন you 'সব একই কম্পাইলার ব্যবহার পুনরায় (এখনও আছে এর অবস্থানগুলির সাথে বিরক্তিকর সমস্যার হবেন কিনা আপনার যা দরকার, ফাইল অন্তর্ভুক্ত -lm, -lnslএবং তাই কিনা সেই সুবিধা C লাইব্রেরি, ইত্যাদি অন্তর্ভুক্ত করা হয়)।
জুলাই

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

একই কিউ মেকের পক্ষে যায় (খারাপভাবে নথিভুক্ত না হওয়া সত্ত্বেও বেআইনী আচরণ করা হচ্ছে ** এপি সিএমকে হ'ল),
বিটিডাব্লু

11

হয় makeসত্যিই পুরানো?

আমি তাই মনে করি না. শেষ অবধি, পরিবর্তিত উত্সের শর্তসাপেক্ষ সংকলনের মতো কাঙ্ক্ষিত সমস্ত কার্যকারিতা সরবরাহ করতে মেক এখনও যথেষ্ট শক্তিশালী। বলা makeপুরানো ছিল, কাস্টম লিঙ্কার স্ক্রিপ্টগুলি লেখার পুরানো ছিল বলে সমান হবে।

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

অন্যদিকে, CMakeজেনেরিক ইএলএফ লাইব্রেরি এবং এক্সিকিউটেবলগুলি উত্পন্ন করার দিকে সরাসরি তৈরি করা হয়। আপনি যখনই এগুলি থেকে পূর্বনির্ধারিত পদ্ধতিগুলি ছেড়ে চলে যান, আপনি CMakeঠিক নিজের মেকফাইলগুলি হ্যাক করার জন্য হ্যাকিং শুরু করতে হবে।

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

এটি সর্বদা আপনার অ্যাপ্লিকেশনটি কীভাবে বিশেষায়িত এবং CMakeকাঠামোর কাঠামোটি আপনার কাজের প্রবাহকে কতটা ফিট করে তার উপর নির্ভর করে ।


দরকারী হিসাবে, মেক ব্র্যান্ডেড, আরকেন সিনট্যাক্স এবং প্রচুর ওফ-মুহুর্তের জন্য তৈরি টন অপ্রয়োজনীয় সীমাবদ্ধতা সহ একটি ভয়ঙ্কর সিস্টেম।
এন্ট্রি করা হয়েছে

7

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

অবশ্যই অনেকগুলি অবজেক্ট ফাইল তৈরির জন্য অনেক উত্স ফাইল এবং অনেকগুলি ইউটিলিটি ব্যবহার করা হচ্ছে, এটি ম্যানুয়ালি কোনও কিছু তৈরি করতে গোলমাল। সরঞ্জামগুলিতে নকশার ত্রুটিগুলি (কঠোরভাবে সীমাবদ্ধ হার্ডওয়্যার দ্বারা সৃষ্ট) কাজ করার জন্য লোকেরা প্রাকৃতিকভাবে কিছু ঝামেলা সরিয়ে নিতে স্ক্রিপ্টগুলি লেখা শুরু করে।

দুঃখজনকভাবে, স্ক্রিপ্টগুলি বিশ্রী এবং অগোছালো ছিল। স্ক্রিপ্টের সমস্যার (যা সীমিত হার্ডওয়্যার দ্বারা সৃষ্ট সরঞ্জাম নকশা সংক্রান্ত ত্রুটিগুলি জন্য একটি কাজ প্রায় ছিল) সমস্যা এড়ানোর জন্য অবশেষে মানুষের মত, জিনিষ সহজ করতে ইউটিলিটি উদ্ভাবিত make

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

আমরা এখন এখানেই রয়েছি: সীমাবদ্ধ হার্ডওয়্যার দ্বারা সৃষ্ট সরঞ্জামগুলির মধ্যে ডিজাইনের ত্রুটিগুলির জন্য একটি ওয়ার্ক-চারপাশের জন্য ওয়ার্ক-চারপাশের জন্য।

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


1
তাহলে বিকল্প কি? বিকল্পগুলি কীভাবে বিল্ডের ধারণাকে সম্পূর্ণরূপে পরিবর্তন হিসাবে আমরা এটি জানি?
জেপরিলা

1
@ দার্কস্ল্যাশ: একবার আপনি বন্যার দ্বীপ খোলার মতো বিকল্পগুলি (অনুমানমূলক) বিকল্পগুলি বিবেচনা করা শুরু করলে - আপনি সমস্ত কিছু নিয়ে প্রশ্ন উত্থাপন করেন (এবং শব্দার্থবিজ্ঞান এবং বাক্য গঠন পৃথককরণ, এবং আইডিই এবং সরঞ্জামগুলি পুনরায় ডিজাইনিং এবং সেটগুলি পৃথক পৃথক টুকরো না করে সেট হিসাবে বিতরণ করার মত ধারণাগুলি দিয়ে শেষ করেন) বৃহত ধাঁধা)। আরও ব্যবহারিক অনুধাবন করা যে সরঞ্জামগুলি cmakeকেবল লক্ষণগুলির চিকিত্সা করে এবং মূল কারণগুলি / গুলি নিরাময় করতে পারে না; যা সম্ভবত "আদর্শ" এর কাছাকাছি থাকবে না এমন সরঞ্জামগুলি ব্যবহার করা ছাড়া আপনার আর কোনও পছন্দ নেই, এই সত্যটি মেনে নেওয়া সহজ করে তোলে।
ব্রেন্ডন

5
মেকফিলগুলি কোনওভাবেই 'বিশ্রী এবং অগোছালো' নয়। এগুলি অবিশ্বাস্যরূপে মার্জিত: makeএর হৃদয়ে এক অ্যাসাইক্লিক নির্ভরতা গ্রাফটি অতিক্রম করার জন্য একটি ইঞ্জিন। 'স্ক্রিপ্ট' বা কমান্ড লাইন সম্পর্কে কিছুই 'প্রত্নিক' নয়।
মাইলস রাউথ

1
@ মাইলসআরউট: বিশ্রী এবং অগোছালো অংশ হ'ল গ্রাফ নির্মাণ। ট্র্যাভারসাল যথেষ্ট মার্জিত। তবে কেবল অগোছালো অংশটির একক সাধারণ উদাহরণ নিন: সি হেডার ফাইলগুলি। প্রত্যেকটি #includeএকটি প্রান্ত, তবে makeসি ফাইলগুলি পার্স করতে পারে না। তবুও কোনও সমস্যা নয়, কারণ makeএই প্রান্তগুলি পরবর্তী নোড (* .o ফাইল) দিয়ে সঞ্চয় করতে পারে , তবে এটিও তা করে না।
MSalters

3
আমি একমত নই যে আরও ভাল ডিজাইন সম্ভব। makeশুধু সি সংকলনের জন্য নয়! আপনি এমন একটি প্রোগ্রাম চান যা গ্রহণ করে .cএবং .hফাইল দেয় এবং দেয় Makefile। তবে তা নয় makeএবং এটি করা makeউচিত নয় । আবার, makeসি সম্পর্কে নয়, এবং এর মধ্যে তৈরি সি-নির্দিষ্ট সমাধানটি makeএকটি খারাপ ধারণা (এবং ঘটনাক্রমে ইউএনআইএক্স দর্শনের লঙ্ঘন)।
মাইলস রাউথ

5

make (একটি মেকফিলের মাধ্যমে এটির সরঞ্জাম বা সরাসরি ব্যবহার) পুরানো নয়, বিশেষত "ছোট, ব্যক্তিগত প্রকল্প" এর জন্য যেমন আপনি এটি ব্যবহার করেন।

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

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

কিউটি ক্রিয়েটার এবং ইক্লিপসের মতো আইডিই মেকফাইল-ভিত্তিক প্রকল্পগুলি আমদানি করতে পারে, তাই আপনি আইডিই ব্যবহার করে বিকাশকারীদের সাথে ভাগ করতে পারেন। আমি মনে করি কিউটি ক্রিয়েটর আইডিই সি ++ আইডিই হিসাবে দুর্দান্ত, তবে ইমাক্সের সাথে আরও কার্যকর হওয়ার জন্য কিছুটা সময় ব্যয় করার পরে এবং যেহেতু আমি আরও অ্যাডা বিকাশ করছি, আমি নিজেকে সব কিছুর জন্য এমাক্সকেই প্রাধান্য দিচ্ছি। makeআমার মেকফাইলে পোস্ট-লিংক পদক্ষেপ হিসাবে এই সম্পর্কে প্রশ্নের সাথে সম্পর্কিত হতে , আমি আমার TAGS ফাইল আপডেট করব (ইমাসে প্রতীক নেভিগেশনের জন্য ), এতে লোড M-x visit-tags-table:

find $(SRC_DIR) $(TEST_DIR) -regex ".*\.[ch]\(pp\)?" -print | etags -

বা অ্যাডা বিকাশের জন্য:

find $(SRC_DIR) $(TEST_DIR) -name "*.ad?" -print | etags -

2

এই উত্তরটি @lxrec উত্তর পরিপূরক করে।

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

এটির জন্য আপনাকে এই জন্য মেকফাইলগুলি ব্যবহার করার দরকার নেই, আপনি এই জাতীয় কাজের জন্য একটি স্ক্রিপ্টিং ভাষা (শেল, অজগর ইত্যাদি) ব্যবহার করতে পারেন।


1

আমি মনে করি না যে মানুষের লিখিত Makefileগুলি অপ্রচলিত, বিশেষত যখন:

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

0

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

একইভাবে, আপনি চাইলে যদি সমস্ত g++ -g src/*.c -o blah -W -Wall -Werror && ./blahসময় লেখার বিষয়টি এড়ানো যায় তবে একটি হাতে লিখিত মেকফিল নিখুঁত!

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


"কার্যত সর্বত্রই সংকলন করবে" -> "সাম্প্রতিকতম ইউনিক্সের মতো সিস্টেমে সংকলন করবে"। আমি মনে করি না autotoolsউইন্ডোজ সিস্টেমে কোনও প্রাসঙ্গিক ডিগ্রিতে কাজ করে, উদাহরণস্বরূপ (সাইগউইন / মিংডাব্লু ছাড়, যা উইন্ডোজের শীর্ষে ইউনিক্সের মতো একটি সিস্টেম)
sleske

সাম্প্রতিক হওয়ার সাথে এর কোনও যোগসূত্র নেই। অটোটুলগুলির সুবিধা হ'ল এটি প্রতিটি দূরবর্তী পসিক্স-মতো সিস্টেমে কাজ করে। উইন্ডোজ কিছুটা পসিক্স অনুগত।
মাইলস রাউট

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

এবং এর জন্য দোষ পুরোপুরি মাইক্রোসফ্টের কাছে। যদি তারা একটি মানের পণ্য উত্পাদন সম্পর্কে চিন্তা করে তবে উইন্ডোজ আন্তর্জাতিক অপারেটিং সিস্টেমের মান (পসিক্সের মতো) এর জন্য যথাযথ সমর্থন পাবে। POSIX, একটি "ইউনিক্স জিনিস" ঠিক নয় এটা সব অপারেটিং সিস্টেমের জন্য পোর্টেবল অপারেটিং সিস্টেম মান। উইন্ডোজ কেবল জাঙ্কের একটি অ-সঙ্গতিপূর্ণ গাদা।
মাইলস

@ মাইলসআরআউট এখনও নীচের লাইনটি হ'ল "কার্যত সর্বত্র" 90% ডেস্কটপ কম্পিউটার বাদ দেয় ।
el.pescado

-2

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

যাইহোক, যখন প্রকল্পটি জটিল হয়, অসংখ্য মেমরি অঞ্চল ব্যবহার করে, অনেকগুলি ফাইল থাকে, তখন প্রতিটি মেমরি অঞ্চলকে ঠিক চিহ্নিত স্থানে রাখা উচিত, প্রতিবার যখন তুচ্ছ পরিবর্তন হয় তখন প্রতিটি ফাইল পুনরায় সংশ্লেষ না করা অত্যন্ত কাম্য is একটি ফাইল তৈরি,

আপনি যদি ন্যূনতম পরিমাণ ঝামেলা এবং কীপ্রেস ভুলের সম্ভাবনা সহ পুরানো ফাইলগুলি মুছে ফেলতে / সংকলন / লিঙ্ক / ইনস্টল করতে চান তবে মেকফাইলটি একটি আসল वरदान।

আপনি যখন 'রিয়েল ওয়ার্ল্ড' এ যান প্রকল্পগুলি খুব কমই কেবল 1 বা 2 ফাইল হয়, তবে শত শত ফাইল। একটি মেকফাইল সর্বদা সঠিক ক্রিয়া সম্পাদন করবে এবং কোনও অপ্রয়োজনীয় ক্রিয়া করবে না (এটি ডিবাগ হওয়ার পরে) সুতরাং আপনি কেবল একটি সাধারণ কমান্ড টাইপ করেন এবং মেকফিল সমস্ত কাজ করে


1
এর makeচেয়ে বেশি cmakeবা তার বিপরীতে কেন পছন্দ করা যায় তা উত্তর দেয় না ।
Ext3h

মেকফাইলগুলি ব্যবহার করা সমস্ত সময় সমস্ত ফাইল পুনর্নির্মাণ করে না। (অন্যথায় সিএমকে বা অটো-সরঞ্জামগুলি এটি ব্যবহার করতে পারেনি)
ধারণাগুলি 42
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.