অটোটুলস, ক্যামেক এবং স্কোনগুলির মধ্যে পার্থক্য কী?


259

অটোটুলস, ক্যামেক এবং স্কোনগুলির মধ্যে পার্থক্য কী?


এই বিষয়টি ইতিমধ্যে স্ক্যানস উইকিতে আলোচনা করা হয়েছে । আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি নিম্নলিখিত লিঙ্ক এখানে যান: 1. scons.org/wiki/SconsVsOtherBuildTools আপনি অনুরূপ একটি আলোচনা থ্রেড পরিদর্শন করেছেন উবুন্টু ফোরাম ?
ভদ্র

আপনি এই পিডিএফ www-alt.gsi.de/documents/DOC-2007-Sep-17-1.pdf চেক করতে পারেন ; এটিতে বিভিন্ন উপকারিতা এবং প্রতিটি সরঞ্জাম সম্পর্কে কিছু বিশদ রয়েছে।
আদম

উত্তর:


190

সত্যিকার অর্থে, অটটুলগুলি 'সত্যিকারের' সংরক্ষণের অনুগ্রহ 'হ'ল এটি সমস্ত জিএনইউ প্রকল্পগুলি মূলত ব্যবহার করছে।

অটোটুল সহ সমস্যাগুলি:

  • সত্যই আরকান এম 4 ম্যাক্রো সিনট্যাক্স ভার্বোজের সাথে মিশ্রিত, "সামঞ্জস্যতা" পরীক্ষার জন্য বাঁকা শেল স্ক্রিপ্টিং ইত্যাদি etc.
  • আপনি মনোযোগ পরিশোধ না করেন, তাহলে হবে ক্রস সংকলন ক্ষমতা আপ জগাখিচুড়ি (এটা পরিষ্কারভাবে উল্লেখ করা উচিত যে নোকিয়া পার্শ্ব-ধাপে Scratchbox / Scratchbox2 নিয়ে এসেছেন অত্যন্ত Maemo / MeeGo জন্য Autotools বিল্ড স্থাপনার ভাঙ্গা।) আপনি পারেন, কোন কারণগুলি, আপনার পরীক্ষাগুলিতে স্থির ও স্থির পথ রয়েছে, আপনি ক্রস-কম্পাইল সমর্থনটি ভেঙে যাবেন কারণ এটি আপনার সিস্রুট স্পেসিফিকেশনকে সম্মান করবে না এবং এটি আপনার হোস্ট সিস্টেমের বাইরে থেকে জিনিসগুলি টানবে। যদি আপনি ক্রস-সংকলন সমর্থনটি ভঙ্গ করেন তবে এটি আপনার কোডটি ওপেন এমবেড করা জাতীয় জিনিসের জন্য অকেজো করে তোলে এবং লক্ষ্য ছাড়াই ক্রস-সংকলকটিতে তাদের প্রকাশগুলি তৈরি করার চেষ্টা করা বিতরণগুলির জন্য এটিকে "মজাদার" করে তোলে।
  • প্রাচীন, ভাঙা সংকলকগুলির সমস্যাগুলির জন্য যে বিপুল পরিমাণে পরীক্ষার ব্যবস্থা করা হয় যা বর্তমানে কোনও দিনই এবং এই যুগে কোনও উত্পাদন খুব বেশি ব্যবহার করে O আপনি সোলারিস, এআইএক্স, বা এর মতো সত্যিকারের প্রাচীন সংস্করণে গ্লিবসি, লিবিস্টডি ++, বা জিসিসির মতো কিছু তৈরি না করা থাকলে পরীক্ষাগুলি সময় নষ্ট এবং উপরে বর্ণিত জিনিসগুলির অনেকগুলি, অনেকগুলি সম্ভাব্য ভাঙ্গনের উত্স হয়।
  • উইন্ডোজ সিস্টেমের জন্য ব্যবহারযোগ্য কোড তৈরির জন্য একটি অটোটুলস সেটআপ পাওয়া বেশ কষ্টদায়ক অভিজ্ঞতা। (যদিও আমি উইন্ডোজটির জন্য খুব কম ব্যবহার করেছি, আপনি যদি ক্রস প্ল্যাটফর্ম কোডটি বিকাশ করছেন তবে এটি গুরুতর উদ্বেগের বিষয়))
  • এটি যখন ভেঙে যায়, আপনি HOURS কে আপনার লেজটি তাড়া করার জন্য ব্যয় করতে যাচ্ছেন যাঁর স্ক্রিপ্টিং লিখেছেন সেগুলি আপনার বিল্ডটি বাছাই করতে ভুল হয়েছে (বাস্তবে, আমি এটি করার চেষ্টা করছি) (বা বরং, অটোটুলগুলি সম্পূর্ণরূপে ছিঁড়ে ফেলেছে - আমি সন্দেহ করি যে এই টাইপ করার সময় এখনই কাজের জন্য এই মাসের বাকী পর্যায়ে যথেষ্ট সময় আছে ...) কাজের জন্য এখনই আপাচি থ্রিফ্টের সেই ব্রোকেন বিল্ড সিস্টেমগুলির মধ্যে একটি রয়েছে যা অতিক্রম করবে না -compile।)
  • "স্বাভাবিক" ব্যবহারকারীদের আসলে না শুধু কাজ করতে যাচ্ছেন "./configure; করুন" - অনেক কিছু তারা কেউ দ্বারা উপলব্ধ একটি প্যাকেজ কাছে করা চলুন, একটি পিপিএ, বা তাদের বিতরণ বিক্রেতা থেকে বের পছন্দ করি। "সাধারণ" ব্যবহারকারীরা ডেভস নন এবং অনেক ক্ষেত্রে তারা টারবালগুলি ধরছেন না। এটি যে কেসটি হতে চলেছে এমনটি অনুমান করার জন্য এটি সবারই ত্রুটিযুক্ত। টার্বলগুলির জন্য সাধারণ ব্যবহারকারীগণ কাজগুলি করেন, তাই তারা যদি সেখানে থাকে তবে তাদের বিরক্তিকরতার সাথে আপত্তি জানাতে চলেছে।

এটি কাজ করে ... বেশিরভাগ সময় ... অটোটুল সম্পর্কে আপনি যা বলতে পারেন তা কেবল। এটি এমন একটি সিস্টেম যা বেশ কয়েকটি সমস্যা সমাধান করে যা কেবলমাত্র জিএনইউ প্রকল্পকে ... তাদের বেস, মূল সরঞ্জামচেন কোডের জন্য সত্যিই উদ্বেগিত করে। (সম্পাদনা (05/24/2014): এটি লক্ষ করা উচিত যে এই ধরণের উদ্বেগ একটি উদ্বেগজনকভাবে BAD বিষয় যা উদ্বেগের বিষয় হতে পারে- হৃদয়যুক্ত আংশিকভাবে এই চিন্তাভাবনা থেকে এবং সঠিক, আধুনিক সিস্টেমগুলি সহ, আপনি সত্যই সত্যঅটোটুলস যা সংশোধন করে তার সাথে অনেকগুলি ব্যবসা করে না। জিএনইউ-র সম্ভবত কোডবেসটি ক্রুফট অপসারণের দরকার আছে, হার্টলেডের সাথে যা ঘটেছিল তার আলোকে) আপনি এটি আপনার প্রকল্পটি করতে ব্যবহার করতে পারেন এবং এটি এমন একটি ছোট্ট প্রকল্পের জন্য সুন্দরভাবে কাজ করতে পারে যা আপনি লিনাক্স বাদে বা কোথাও কাজ করার আশা করেন না। জিএনইউ সরঞ্জামচেন পরিষ্কারভাবে সঠিকভাবে কাজ করছে। বিবৃতি যে এটি "লিনাক্সের সাথে সুন্দরভাবে সংহত করে" যথেষ্ট সাহসী বিবৃতি এবং বেশ ভুল । এটি GNU সরঞ্জামসুটির সাথে যুক্তিসঙ্গতভাবে ভালভাবে সংহত করে এবং এটির লক্ষ্যগুলির সাথে সমস্যাগুলি সমাধান করে।

এটি এখানে থ্রেডে আলোচিত অন্যান্য বিকল্পগুলির সাথে কোনও সমস্যা নেই তা বলার অপেক্ষা রাখে না।

মেক / জ্যামেক / ইত্যাদির জন্য স্ক্যানস আরও একটি প্রতিস্থাপন। এবং দেখতে বেশ সুন্দর দেখাচ্ছে, সব কিছু বিবেচিত তবে ...

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

এই থ্রেডে সিএমকে জন্য দেওয়া উদাহরণগুলি কিছুটা জাল।

যাহোক...

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

সত্যিকার অর্থে, আপনার লক্ষ্যগুলি এখানে যা বেছে নেবে তা নির্ধারণ করা উচিত।

  • আপনি যদি একটি সঙ্গে মোকাবিলা করার জন্য প্রয়োজন অনেক ভাঙ্গা toolchains একটি বৈধ কাজ বাইনারি উত্পাদন করতে? যদি হ্যাঁ, আপনি উপরে উল্লিখিত ত্রুটিগুলি সম্পর্কে সচেতন হয়ে আপনি অটটুলগুলি বিবেচনা করতে চাইতে পারেন। সিএমকে এগুলি অনেক কিছু মোকাবেলা করতে পারে তবে অটোটুলের চেয়ে এটি এর সাথে কম উদ্বেগ প্রকাশ করে। এটি নিয়ে উদ্বেগ জানাতে স্ক্যানদের বাড়ানো যেতে পারে, তবে এটি সেখানে কোনও উত্তর নেই।
  • আপনার কি উইন্ডোজ লক্ষ্যগুলি নিয়ে চিন্তা করার দরকার আছে? যদি তা হয় তবে অটটুলগুলি বেশ আক্ষরিক অর্থে দৌড়াতে হবে। যদি তা হয় তবে এসসিএনগুলি / পছন্দ নাও হতে পারে। যদি তা হয় তবে সিএমকে একটি কঠিন পছন্দ।
  • আপনি ক্রস সংকলন সম্পর্কে চিন্তা করতে প্রয়োজন (ইউনিভার্সাল অ্যাপস / লাইব্রেরি, গুগল Protobufs, এ্যাপাচি থ্রিফ্ট, ইত্যাদি ভালো জিনিস আছে উচিত এই যত্নশীল ...)? যদি তা হয় তবে অটোটুলগুলি পারেআপনার জন্য এত দিন কাজ করুন যতক্ষণ আপনার উইন্ডোজ সম্পর্কে চিন্তা করার দরকার নেই তবে জিনিসগুলি আপনার পরিবর্তিত হওয়ায় আপনি আপনার কনফিগারেশন সিস্টেম বজায় রাখতে প্রচুর সময় ব্যয় করতে যাচ্ছেন। আপনি স্ক্র্যাচবক্স 2 ব্যবহার না করা পর্যন্ত স্ক্যানস প্রায় কোনও মুহূর্তে ঠিক না - ক্রস-সংকলনটির সত্যই এটির একটি হ্যান্ডেল নেই এবং আপনাকে সেই এক্সটেনসিবিলিটিটি ব্যবহার করতে হবে এবং এটি ঠিক একই পদ্ধতিতে বজায় রাখতে হবে আপনি অটোমাকে দিয়ে যাবেন। যদি তাই হয়, আপনি যেহেতু এটি ক্রস-সংকলন সমর্থন CMake কথা বিবেচনা করতে পারেন স্যান্ডবক্স বাইরে লিক এবং Scratchbox2 এবং সংহত ভালো কিছু ছাড়া / সঙ্গে কাজ করবে সম্পর্কে উদ্বেগ অনেক হিসাবে ছাড়া চমত্কারভাবে OpenEmbedded মত বিষয়গুলিতে।

অনেকগুলি কারণ রয়েছে, অনেকগুলি প্রকল্প চূড়ান্তভাবে কুইমেক, অটোটুলস ইত্যাদি ছড়িয়ে যাচ্ছে এবং সিএমকে নিয়ে চলেছে। এখন পর্যন্ত, আমি সিএমকে ভিত্তিক প্রকল্পটি পরিষ্কারভাবে আশা করতে পারি যে হয় ক্রস-কম্পাইল পরিস্থিতি বা ভিজ্যুয়াল স্টুডিও সেটআপে নেমেছে বা কেবলমাত্র একটি সামান্য পরিমাণে পরিষ্কার দরকার কারণ প্রকল্পটি উইন্ডোজ-কেবলমাত্র বা ওএসএক্স-কেবলমাত্র অংশগুলির জন্য অ্যাকাউন্ট করে নি কোডবেসে। আমি সত্যিই একটি SCons যে আউট ভিত্তিক project- আশা করতে পারে না এবং আমি সম্পূর্ণরূপে আশা 1/3 য় বা একাধিক Autotools প্রকল্প অর্জিত হয়েছে কিছু একটা ভুল যে precludes এটা হোস্ট একটি অথবা Scratchbox2 এক বিল্ডিং ছাড়া কোন প্রেক্ষাপটে ডানে বিল্ডিং।


12
হৃদয়গ্রাহী উল্লেখকারী বিভাগটি এই হতাশাগ্রস্ততা থেকে বিরত রয়েছে। ওপেনএসএসএল সমস্যাটি হ'ল ভাঙা মলোকের সনাক্তকরণের জন্য কনফিগারেটর টাইপ প্যাকেজটি ব্যবহার করা হয়নি তবে সিস্টেম লাইব্রেরিগুলি পুনরায় বাস্তবায়ন করা এবং প্ল্যাটফর্ম বিকাশকারীদের পরাজিত করা যারা গ্রন্থাগারগুলি তৈরি করেছিলেন যা খুব শীঘ্রই ত্রুটিগুলি সনাক্ত করতে পারে। প্রোগ্রামগুলি বন্দর করার একটি কারণ হ'ল তারা উচ্চমানের হয়ে ওঠে কারণ আপনি যে ছোট্ট অনুমানগুলি তৈরি করছেন তা আপনি অনুধাবন করেন না তার উপর কম নির্ভর করে
রব 11311

9
বিষয়টি হ'ল এটি এ থেকে মোটেই বিরক্ত হয় না। অটোটুলগুলির সাথে, আপনি সেই জাতীয় জিনিসের ক্ষতিপূরণ দেওয়ার বিষয়ে চিন্তা করছেন। সেগুলি পুনরায় বাস্তবায়ন করা সেই চিন্তাভাবনার একটি এক্সপেনশন। এটি যেমন ছিল তেমন পরবর্তী স্তরে নিয়ে যাওয়া। আপনার সেই পটভূমি থেকে দেখা উচিত ... কোন মুহুর্তে এটি এ থেকে মোটেই বিরক্ত হয় না। আপনি আপনার যুক্তিতে মূল কারণটিকে আঙুল দেননি just ঠিক যা ঘটেছিল। আমি ঠিক সেই ভাবনাটি আঙ্গুল দিয়ে দেখছি যা শেলশক এবং এটির মতো আরও কয়েকজনকে সাথে এনেছে। যদি এটি ভেঙে যায় তবে আপনার এটি ঠিক করা উচিত। যদি আপনি না পারেন- আপনার কেন জিজ্ঞাসা করা উচিত যে এটি কেন চলছে।
Svartalf

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

5
অন্যান্য ঘৃণ্য প্রোগ্রামিং সরঞ্জামগুলির মতো , "সিএমকে, ভাল অংশগুলি" (সম্ভবত একটি পামফলেট বা একটি ব্লগ পোস্ট) নামে একটি বই তৈরি করার মতো পর্যাপ্ত উপাদান নেই এবং এটি পিএইচপি-র চেয়ে খারাপ ডিজাইনের ফ্র্যাক্টাল ।
weberc2

2
@ জ্যাব আমাকে ভিএস ব্যবহারকারীদের দ্বারা বলা হয়েছে যে এটি মূর্খ নয়। আসলে, সিএমকে আমাদের প্রকল্পের বিল্ড সিস্টেম হিসাবে প্রতিস্থাপন করা হয়েছিল কারণ "আইডিয়োমেটিক" ভিএস প্রকল্প ফাইলগুলি কীভাবে উত্পাদন করা যায় তা কেউ বুঝতে পারেনি।
weberc2

73

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

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


5
সত্য, যদিও আপনি এটির মতো শব্দটি তৈরি করলেও সফ্টওয়্যার বিতরণ করার জন্য কোনও ভিসিএস ব্যবহার করা খারাপ। যদি চেকআউট বা ক্লোনটির বিষয়বস্তুগুলি একটি টারবলের সামগ্রীর মতো হয় তবে আপনি কেন টারবলের সুপারিশ করবেন?
d -_- বি

5
@ আমি আপনার প্রশ্নটি বুঝতে পারি না। আমি যে প্রকল্পগুলিতে কাজ করি তার সবগুলিই একটি টারবাল উত্পাদন করে যা ভিসিএস চেকআউট থেকে আলাদা। দুটি পৃথক রাখা নির্ভরযোগ্য বিতরণে সহায়তা করে।
উইলিয়াম পার্সেল

13
এটি সত্য যে প্রচুর প্রকল্পগুলি লোকেরা সর্বশেষতম প্রকাশ পেতে ভিসিএস ব্যবহার করতে বলে, তবে এটি কেবল বিকাশকারীদের পক্ষে উপযুক্ত। দুর্ভাগ্যক্রমে, অনেক ব্যবহারকারী রিলিজ টারবল এবং ভিসিএসের মধ্যে পার্থক্য বুঝতে ব্যর্থ হয়েছেন। ভিসিএস থেকে তৈরি করার চেষ্টা আরও নির্ভরতা আরোপ করে। ব্যবহারকারী প্রয়োজন হতে পারে asciidocবা help2manবা doxygenসঠিক autotool সমন্বয় বা, সবচেয়ে গুরুত্বপূর্ণভাবে,। এটি অটোটুলগুলির জন্য বিশাল বিপণনের সমস্যা হয়ে দাঁড়িয়েছে। ব্যবহারকারীরা ভুলভাবে মনে করে যে তাদের অটোকনফ ইনস্টল করা দরকার কারণ তারা টারবাল এবং ভিসিএসের মধ্যে পার্থক্য বুঝতে পারে না।
উইলিয়াম পার্সেল

3
কেন কোনও প্রকল্প চ্যানেলের আউটপুট, প্রজেক্ট ফাইল এবং মেকফাইলগুলি সাধারণ প্ল্যাটফর্মের জন্য যেমন বিতরণ করতে পারে না?) উইন, লিনাক্স এবং ম্যাকোএসএক্স? লেক্স / ইয়্যাক সরঞ্জামগুলির মতো একই অবস্থার মতো মনে হয়, আপনি জেনারেটেড সি কোডটি অন্তর্ভুক্ত করেন যাতে এটি সরঞ্জাম ছাড়াই প্ল্যাটফর্মে তৈরি করা যায়
Rob11311

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

24

এটি জিএনইউ কোডিং মান সম্পর্কে নয়।

অটোটুলগুলির বর্তমান সুবিধাগুলি - বিশেষত যখন অটোমেক ব্যবহার করা হয় - তা হ'ল তারা লিনাক্স বিতরণে খুব ভালভাবে সংহত করে।

উদাহরণস্বরূপ চিত্তাকর্ষক সহ, এটি সর্বদা "আমার-যা প্রয়োজন তা -DDMAKE_CFLAGS বা-DCMAKE_C_FLAGS ছিল?" না, এটি উভয়ই নয়, এটি "-ডাব্লিউএমএকে_সি_এফএলএজিএসএলএএসএলইএসই"। বা -ডিসিএমএকেE_C_FLAGS_DEBUG। এটি বিভ্রান্তিকর - অটোকনফ-এ, এটি ঠিক ./configure CFLAGS = "- O0 -ggdb3" এবং আপনার কাছে রয়েছে।

বিল্ড ইনফ্রাস্ট্রাকচারগুলির সাথে সংহতকরণে, স্ক্যানগুলির এমন সমস্যা রয়েছে যা আপনি ব্যবহার করতে পারবেন না make %{?_smp_mflags}, _smp_mflagsএই ক্ষেত্রে একটি RPM ম্যাক্রো হ'ল মোটামুটি প্রসারিত (অ্যাডমিন সেট করতে পারে) সিস্টেম পাওয়ার। লোকেরা এখানে তাদের পরিবেশের মাধ্যমে -jNCPUS এর মতো জিনিস রাখে। যে স্ক্যানগুলি কাজ করছে না তা দিয়ে, তাই স্ক্যানগুলি ব্যবহার করে প্যাকেজগুলি কেবল ডিস্ট্রোসগুলিতে সেরিয়াল নির্মিত হতে পারে।


8
এটি যদি সত্য হয় তবে +1 এবং বিশ্বের আরও ভাল জায়গা হবে। দুঃখিতভাবে, ./configure CFLAGS=-O0প্যাকেজ যে Makefile মধ্যে ঊর্ধ্বলিপি CFLAGS পরিবর্তে ব্যবহারকারীকে রান প্রয়োজন সঙ্গে প্রায়ই ব্যর্থ হয় ./configure --enable-debug। (যেমন tmux)
উইলিয়াম পার্সেল

2
এটি অটোটুলের চেয়ে বিভ্রান্তিকর আর নয় এবং উইলিয়াম যথাযথভাবে উল্লেখ করেছেন, এটি মেকফিলের মধ্যে একটি ভুলভাবে ফ্রেমযুক্ত সিএফএলএগএস = "<foo>" দিয়ে নরকে গিয়েছে। বেশ সহজেই এটি সেই "পুরানো করাত" আইটেমগুলির মধ্যে একটি। এবং সিএমকে উদাহরণগুলি বোগাস ... আবার ... আপনি যদি রিলিজ বা ডিবাগ নির্দিষ্ট না করে থাকেন তবে আপনি প্রথমটি করতে পারেন। ব্যর্থ হয়।
স্বয়ার্টাল্ফ

17

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


11
গনুহ মান Automake অক্ষম করা যাবে AUTOMAKE_OPTIONS = -foreignআপনার Makefile.am। (বা -foreignআপনার মধ্যে autogen.sh। আমি মনে করি প্রায় প্রত্যেকে এটি ব্যবহার করে))
ডায়েটরিচ এপ্প

9
হ্যাঁ, তবে এটি কেবল নিয়ন্ত্রণ করে যে কোনও অটোমেক সুপারিশিয়াল জিএনইউ বিধি প্রয়োগ করে কিনা যেমন একটি README ফাইল প্রয়োজন কিনা। এটি GNU- রীতিযুক্ত টার্বল তৈরির মত installcheckএবং মত বিধিগুলির মৌলিক ভিত্তি পরিবর্তন করে না distclean। আপনি যদি এখনও অটোটুল ব্যবহার করার সময় সেই ধরণের আচরণ পরিবর্তন করার চেষ্টা করেন তবে আপনি কেবল নিজের সময় নষ্ট করছেন।
টটোমো

1
তারা (তত্ত্ব অনুসারে) সমস্ত সফ্টওয়্যার প্যাকেজ ঠিক একইভাবে তৈরি এবং ইনস্টল করার অনুমতি দেয়।
টমোটো

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

আপনি কেন নিজের মন্তব্যে এটি স্বীকার করছেন বলে মনে হচ্ছে না কেন?
টোটোমেট

9

বিকাশকারী দৃষ্টিকোণ থেকে, চতুর ব্যবহার এখন সর্বাধিক সহজ, ব্যবহারকারীর দৃষ্টিকোণ থেকে অটোটুলের একটি বড় সুবিধা রয়েছে

অটটুলগুলি একটি একক ফাইল কনফিগার স্ক্রিপ্ট উত্পন্ন করে এবং উত্পন্ন করার জন্য সমস্ত ফাইল বিতরণ করে। গ্রেপ / সেড / অ্যাজক / vi এর সাহায্যে এটি বোঝা এবং ঠিক করা সহজ। এটি চ্যামেকের সাথে তুলনা করুন যেখানে / usr / share / cmak * / মডিউলগুলিতে প্রচুর ফাইল পাওয়া যায়, যা প্রশাসকের অ্যাক্সেস না থাকলে ব্যবহারকারীর দ্বারা স্থির করা যায় না।

সুতরাং, যদি কোনও কিছু পুরোপুরি কাজ না করে তবে সাধারণত বিল্ডসিস্টেমটি না বুঝে স্ল্যাজহ্যামার পদ্ধতিতে স্ট্যান্ডার্ড ইউনিক্স সরঞ্জামগুলি (গ্রেপ / সেড / অ্যাজক / ভি ইত্যাদি) সহজেই "ফিক্সড" করা যায়।

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


7
সিএমকের তুলনায় অটটুলগুলির সমস্যাগুলি "সহজেই স্থির" হয়েছে বলে আমি মনে করি না ...
স্লেসকে

7
কারণ অটোটুলগুলি একটি জটিল ব্যবস্থা (ঠিক সিএমকের মতো)। আপনি যদি ভাবেন যে অটটুলগুলি "সহজেই স্থির" হয়েছে (এটি ভাবার জন্য রেওনস থাকতে পারে), সমস্যাগুলি কীভাবে সমাধান করা সহজ the সে সম্পর্কে উত্তরে এটি ব্যাখ্যা করা ভাল আইএমএইচও হবে।
22-28 এ sleske

5
অটটুলগুলি একটি একক ফাইল কনফিগার স্ক্রিপ্ট উত্পন্ন করে এবং উত্পন্ন করার জন্য সমস্ত ফাইল বিতরণ করে। গ্রেপ / সেড / অ্যাজক / vi এর সাহায্যে এটি বোঝা এবং ঠিক করা সহজ। এটি চ্যামেকের সাথে তুলনা করুন যেখানে / usr / share / cmak * / মডিউলগুলিতে প্রচুর ফাইল পাওয়া যায়, যা প্রশাসকের অ্যাক্সেস না থাকলে ব্যবহারকারীর দ্বারা স্থির করা যায় না। ভুল কি আছে তা খুঁজে পাওয়ার জন্য আপনি কি কখনও নিজের ক্যামেক বিল্ড ডিরেক্টরিটি খনন করেছেন? সরল শেলসক্রিপ্টের সাথে তুলনা করুন যা উপরে থেকে নীচে পর্যন্ত পড়া যায়, যা তৈরি হচ্ছে তা আবিষ্কার করা উত্পন্ন Cmake ফাইলগুলি অনুসরণ করে
সংরক্ষিত

2
হ্যাঁ, এটি সংবেদনশীল করে তোলে, ধন্যবাদ। আপনার উত্তরে আমি এটি যুক্ত করার স্বাধীনতা নিয়েছি। ফিরে যেতে নির্দ্বিধায় :-)।
সলেসকে

1
আপনি সর্বদা চ্যামেকের নিজস্ব স্থানীয় সংস্করণ ব্যবহার করতে পারেন; সিস্টেম পর্যায়ে কি ইনস্টল করা হয়েছে তা ব্যবহার করার কোনও কারণ নেই। যে কেউ ক্রস-প্ল্যাটফর্মের কাজ করে, এটি সম্পূর্ণ স্বাভাবিক; আমি অবশ্যই বেশিরভাগ সময় চক্র ব্যবহার করি।
জেমস মুর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.