ইংরেজিফরাসিস্প্যানিশ

Ad


অনওয়ার্কস ফেভিকন

makepp_incompatibilities - ক্লাউডে অনলাইন

উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটরের মাধ্যমে OnWorks ফ্রি হোস্টিং প্রদানকারীতে makepp_incompatibilities চালান

এটি হল makepp_incompatibilities কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।

কার্যক্রম:

NAME এর


makepp_incompatibilities -- makepp এবং GNU make এর মধ্যে অসঙ্গতি

বর্ণনাঃ


Makepp GNU মেক যতটা সম্ভব কাছাকাছি হতে ডিজাইন করা হয়েছে
(<http://www.gnu.org/software/make/manual/make.html>)। GNU অটো টুলস
(<http://www.gnu.org/software/automake/manual/automake.html>), সিমেক
(<http://www.cmake.org/>), প্রিমেক (http://industriousone.com/premake> এবং মন্তব্য দেখুন
নীচে) বা হস্তশিল্পের লিগ্যাসি বিল্ড সিস্টেমগুলি মেকপিপের সাথে তৈরি করা উচিত। সপ্তাহের দিন
আপনি হয় অনায়াসে প্রকল্প স্থানান্তর করতে পারেন. অথবা যদি আপনি সব উপভোগ করতে চান না
makepp এর সুবিধাগুলি (যেমন অন্যরা এখনও GNU মেক দিয়ে আপনার প্রকল্প তৈরি করতে পারে) যখন আপনি
আপনার উন্নয়নের জন্য নির্ভরযোগ্যতা সুবিধা থেকে লাভ.

যাইহোক, দর্শনের পার্থক্যের কারণে, কিছু GNU make's বা POSIX make's
(<http://pubs.opengroup.org/onlinepubs/009695399/utilities/make.html>) বৈশিষ্ট্য হতে পারে না
সমর্থিত আমাদের সময় না থাকায় কয়েকটি বাস্তবায়ন করা হয়নি। অধিকাংশ
GNU মেক থেকে পার্থক্যগুলি বেশ প্রযুক্তিগত এবং খুব কমই সমস্যা সৃষ্টি করে। হায়রে দ
ঐতিহ্যগত তৈরির ঘাটতিগুলির জন্য সমাধানগুলি আরও জটিল হয়ে উঠছে,
এবং makepp একটি কঠিন সময় দিচ্ছে.

সংক্ষেপে, যদি এটি বাক্সের বাইরে তৈরি না হয়, চেষ্টা করুন:

makepp --no-warn makepp_simple_concatenation=1 makepp_percent_subdirs=1 \
--বিল্ড-চেক=টার্গেট_নতুন --শেষ-সুযোগ-নিয়ম --নো-রিমেক-মেকফাইলস

যদি এটি সফল হয়, আপনি একের পর এক সেই আর্গুমেন্টগুলি দূর করার চেষ্টা করতে পারেন। কিন্তু যদি তা ব্যর্থ হয়,
যোগ করার চেষ্টা করুন:

--প্রথাগত-পুনরাবৃত্ত-বানান

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

অত্যাচার অধিক POSIX or গনুহ করা সঙ্গতি


অনেক লিগ্যাসি বিল্ড সিস্টেম কাজ করার জন্য এখানে কিছু কমান্ড লাইন সম্ভাবনা রয়েছে
পরিবর্তন ছাড়া। তারা makepp কে GNU make-এর আচরণ সঠিকভাবে অনুকরণ করতে দেয়।

সঙ্গতি মাধ্যমে দ্য বিকল্প: "--বিল্ড-চেক=লক্ষ্য_নতুন"
ডিফল্টরূপে, কোনো নির্ভরতা থাকলে makepp সমস্ত লক্ষ্য পুনর্নির্মাণের চেষ্টা করবে
শেষ বিল্ডের পর থেকে পরিবর্তিত হয়েছে, অথবা যদি কমান্ড পরিবর্তিত হয় (এর জন্য makepp_build_check দেখুন
বিস্তারিত)। এটি সাধারণত আপনি কি চান. কখনও কখনও, যাইহোক, আপনি লক্ষ্য চান না
মেকপ্পের নিয়ন্ত্রণ বাদ দিয়ে যদি এটি পরিবর্তন করা হয় তবে পুনর্নির্মাণ করা হবে (যেমন, সম্পাদনা করে
এটি, অথবা ফাইল তৈরি করতে ম্যানুয়ালি একটি প্রোগ্রাম চালানোর মাধ্যমে)। আপনি makepp ব্যবহার করতে বাধ্য করতে পারেন
প্রথাগত মেক অ্যালগরিদম, যেটি শুধুমাত্র পুনঃনির্মাণ করে যদি কোনো লক্ষ্যমাত্রার থেকে নতুন হয়
নির্ভরতা, কমান্ড লাইনে এই বিকল্পটি যোগ করে।

সঙ্গতি মাধ্যমে দ্য বিকল্প: "--dont-build=config.status"
এমন প্যাকেজ আছে যেগুলো নিজেদেরকে স্বয়ংক্রিয়ভাবে কনফিগার করার চেষ্টা করে, অথবা অন্য কিছু করে, যা gmake করে
বলা না হলে উপেক্ষা করে, যেমন:

config.status : কনফিগার করুন
./config.status --রিচেক

কনফিগার করুন: configure.in aclocal.m4
অটোকনফ

বেশিরভাগ লোকের কাছে "অটোকনফ" ইন্সটলও নেই, তাই বিবেক দিয়ে সবকিছু করে
নিয়ম, যেমন makepp করে, ব্যর্থ হবে। এই বিকল্পটি বাধা দেয়, যদি আপনি বুঝতে পারেন কি
নির্মাণ করতে না।

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

সঙ্গতি মাধ্যমে দ্য বিকল্প: "---না-সতর্ক"
এই এক ফলাফল উন্নত না. Makepp অনেক কিছুর জন্য সতর্কতা বার্তা দেবে
যা চিরাচরিত ইউনিক্স চমক ছাড়াই গ্রহণ করে। এই কারণ আছে
মেকপপ দিয়ে সেগুলি করার আরও ভাল উপায়। যদি এই সতর্কতাগুলি আপনাকে বিরক্ত করে তবে আপনি সেগুলি বন্ধ করতে পারেন৷
এই বিকল্পের সাথে।

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

ভেরিয়েন্ট বিল্ডের জন্য রিপোজিটরি ব্যবহার করতে এবং পুনরাবৃত্ত করতে সাহায্য করার জন্য
নিরাপদ করার আহ্বান, makepp সাধারণত নিজেকে পুনরাবৃত্তিমূলকভাবে আহ্বান করে না
এমনকি যদি আপনি এটা বলেন. পরিবর্তে, একটি সাবপ্রসেস প্যারেন্ট প্রক্রিয়ার সাথে যোগাযোগ করে এবং
প্রকৃত নির্মাণ মূল প্রক্রিয়া দ্বারা সম্পন্ন করা হয়.

এটি বেশিরভাগ ক্ষেত্রে কাজ করে, তবে আপনি একই থেকে বেশ কয়েকটি মেকফাইল আহ্বান করতে পারবেন না
ডিরেক্টরি, যেমন, নিম্নলিখিত কাজ করবে না:

লক্ষ্য: নির্ভরতা
$(MAKE)-f other_makefile টার্গেট

এই ক্ষেত্রে makepp লক্ষ্য করে যে এটি একটি 2য় মেকফাইল লোড করছে এবং অভিযোগ করেছে। এই বিকল্প সঙ্গে
পরিবর্তে এটি অতিরিক্ত মেকফাইল থেকে নির্মাণের ঐতিহ্যগত পদ্ধতিতে ফিরে আসবে
প্রতিটি একটি পৃথক makepp প্রক্রিয়া।

দ্রষ্টব্য: প্রযুক্তিগতভাবে বেশ কয়েকটি মেকফাইল লোড করা কোন সমস্যা হবে না, তবে তাদের সাধারণত থাকে
একই নকল টার্গেট নাম. এটিকে আলাদা করে রাখার অর্থ হল মেকপিপের সম্পূর্ণ পুনঃডিজাইন
অভ্যন্তরীণ যাইহোক, এটি কাজ করবে, কিন্তু এটি সমতুল্য নয়:

লক্ষ্য: নির্ভরতা
cd subdir && $(MAKE)-f other_makefile টার্গেট

সঙ্গতি মাধ্যমে দ্য বিকল্প: "-প্রথাগত-পুনরাবৃত্ত-বানান"
কখনও কখনও পূর্ববর্তী বিকল্প যথেষ্ট নয়, বিশেষ করে যদি পুনরাবৃত্ত আহ্বান ব্যবহার করে
পরস্পরবিরোধী বিকল্প। Makepp বিশ্বব্যাপী বিকল্পগুলির শুধুমাত্র একটি সেট ব্যবহার করে, তাই একটি সাবমেক নয়
সেগুলিকে সংশোধন করার অনুমতি দেওয়া হয়েছে, কারণ এটি অন্যান্য মেকফাইলের সাথেও সম্পর্কিত।

কমান্ড লাইনে এই বিকল্পটি যুক্ত করার ফলে নিম্নলিখিত অবাঞ্ছিত পার্শ্ব প্রতিক্রিয়া রয়েছে:

· রিকার্সিভ মেক অভ্যন্তরীণভাবে সমান্তরালভাবে কার্যকর করে না, এমনকি যদি অভিভাবক তা করেন।
জিমেকের বিপরীতে প্রসেসের সংখ্যার সামগ্রিক সমন্বয় নেই। এটা হবে
বাস্তবায়িত করা হবে না কারণ কাজের এই পদ্ধতিটি makepp-এর ডিজাইন লক্ষ্য নয়।

· পুনরাবৃত্ত মেক প্রসেস রিপোজিটরি সম্পর্কে কিছুই জানে না।

· প্রতিটি পুনরাবৃত্ত মেক প্রক্রিয়া নিজস্ব লগ ফাইল তৈরি করে, যে ডিরেক্টরিতে এটি আহ্বান করা হয়
in, সমগ্র বিল্ডের জন্য একটি লগ ফাইল তৈরি করার পরিবর্তে।

· যেহেতু মেকপ সাধারণত ঐতিহ্যগত মেক ডিমসের চেয়ে বেশি তৈরি করে, এবং যেহেতু অনেকগুলি
বিল্ড সিস্টেমগুলি সমস্ত দিক থেকে রিকার্সিভ কল সরবরাহ করে, এটি অন্তহীন হতে পারে
পুনরাবৃত্তি Makepp 50 রাউন্ডের পরে ব্রেক টানবে এবং কীভাবে বাড়াতে হবে তা আপনাকে বলবে
যে, যদি আপনি সত্যিই যেমন গভীর বাসা আছে.

এমনকি "--ট্র্যাডিশনাল-রিকারসিভ-মেক" বিকল্পের সাথে, পরিবেশ পরিবর্তনশীল
"MAKEOVERRIDES" এবং "MFLAGS" সেট আপ করা হয় না এবং উপেক্ষা করা হয়, তাই মেকফাইলগুলি যা নির্ভর করে
এগুলো কাজ করবে না।

A প্রিমেক উত্পন্ন Makefile নামক একই মধ্যে একটি সাব-মেক আমন্ত্রণ শুধুমাত্র একটি মজার মোড়ক
ডিরেক্টরি আপনার যদি কিছু প্রজেক্ট টার্গেট থাকে XYZ এর মত একটি লাইন থাকবে

@${MAKE} --no-print-directory -C । -f XYZ.make

এই ক্ষেত্রে আপনি সরাসরি আহ্বান করে "--ট্র্যাডিশনাল-রিকারসিভ-মেক" বিকল্পটি এড়াতে পারেন
যে "-f দিয়ে makepp XYZ.make" বিকল্প।

সঙ্গতি ছাড়া দ্য বিকল্প: "--চাকরি =n"
লিগ্যাসি মেকফাইলস কখনও কখনও সমস্ত নির্ভরতা তালিকাভুক্ত করে না, এর অর্ডারের উপর নির্ভর করে
সময়মতো করতে তাদের মৃত্যুদন্ড কার্যকর করা. এই পরিস্থিতিতে makepp আগে একটি নিয়ম কল পরিচালনা করতে পারে
তার নির্ভরতা সব করা হয়েছে. তারপর ফলাফল কম দিয়ে ভাল হতে পারে, এমনকি নাও হতে পারে
সমান্তরাল মৃত্যুদন্ড

সঙ্গতি মাধ্যমে দ্য পরিবর্তনশীল: "makepp_simple_concatenation=1"
আরসি-স্টাইল প্রতিস্থাপন হল ডিফল্ট উপায় মেকপিপ পাঠ্যের মধ্যে পরিবর্তনশীল প্রতিস্থাপন সম্পাদন করে
স্ট্রিং কারণ এটি খুব কমই লিগ্যাসি মেকফাইলগুলিকে ভেঙে দেয় এবং প্রায়শই নতুনের ক্ষেত্রে দরকারী
makefiles যাইহোক, এটি প্রতিস্থাপনে মাঝে মাঝে অসামঞ্জস্যতা প্রবর্তন করে
ভেরিয়েবল স্পেস দ্বারা বেষ্টিত না. উদাহরণ স্বরূপ,

ইনক্লুড_প্রেফিক্স := -I/some/include/dir -I
অন্তর্ভুক্ত := $(INCLUDE_PREFIX)/অন্য/অন্তর্ভুক্ত/দির

"INCLUDES" কে "-I/some/include/dir/other/include/dir -I/other/include/dir" এ সেট করবে যদি rc-
শৈলী প্রতিস্থাপন সক্ষম করা হয়েছে, যেখানে GNU make এটি সেট করবে
"-I/some/include/dir -I/other/include/dir"। যেমন, Redis 2.6.5 কম্পাইল করার সময় এটি করার চেষ্টা করে
"printfgcc" চালান। দুটি আদেশের যেমন একটি মজার সংমিশ্রণ একটি শক্তিশালী ইঙ্গিত যে
এই পরিবর্তনশীল শব্দার্থবিদ্যা তৈরি করতে পিছিয়ে পড়া প্রয়োজন।

একটি ভেরিয়েবলে হোয়াইটস্পেস পরিচালনার ক্ষেত্রেও একটি অসঙ্গতি রয়েছে:

শূন্য :=
T := -o $(null) # T-এ রয়েছে -o এর পরে একটি স্থান।
আউটফাইল = $(T)আউটফাইল

RC-স্টাইল প্রতিস্থাপন সক্ষম হলে "OUTFILE" কে "-ooutfile" এ সেট করবে, যেখানে GNU তৈরি করবে
এটিকে "-o outfile" এ সেট করবে।

এই দুটি অসঙ্গতিই "makepp_simple_concatenation" সেট করে মুছে ফেলা হয়
পরিবর্তনশীল উল্লেখ্য, তবে, এমনকি "makepp_simple_concatenation" দিয়েও, makepp এখনও
কিছু পরিস্থিতিতে হোয়াইটস্পেস বেমানান আচরণ করে:

T := -o # এই মন্তব্যটি মুছে ফেলবেন না।

GNU তৈরি করে "T" সেট করার জন্য "-o" এর পরে একটি স্পেস থাকে, যেখানে makepp স্ট্রিপ করে
যাইহোক পিছনের স্থান. আপনি যদি ট্রেলিং স্পেস চান তবে আপনাকে অবশ্যই সেট করতে হবে
"makepp_simple_concatenation" এবং এছাড়াও একটি ডামি জড়িত কৌশল ব্যবহার করে "T" সেট করুন
ভেরিয়েবল যেমন "নাল", উপরে দেখানো হয়েছে।

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

সঙ্গতি মাধ্যমে দ্য পরিবর্তনশীল: "makepp_percent_subdirs=1"
ডিফল্টরূপে, একটি প্যাটার্ন নিয়মে "%" ডিরেক্টরির সাথে মেলে না। মানে এমন একটা নিয়ম
এই:

%.o: %.c
$(CC) $(CFLAGS)-c $(ইনপুট) -o $(আউটপুট)

"../shared/xyz.c" এর মতো ফাইলগুলিতে প্রয়োগ করা হবে না। যদি আপনি এটি ফাইলের সাথে মেলে চান
সাবডিরেক্টরিগুলিও, তারপর কমান্ড লাইনে "makepp_percent_subdirs=1" ভেরিয়েবল সেট করুন
বা একটি মেকফাইলের শুরুর কাছাকাছি।

সঙ্গতি মাধ্যমে দ্য পরিবেশ পরিবর্তনশীল: $MAKEPP_IGNORE_OPTS
কখনও কখনও লিগ্যাসি রিকার্সিভ ইনভোকেশন পাস বিকল্পগুলি যা makepp বুঝতে পারে না।
আশা করি বিকল্পটি গুরুত্বপূর্ণ নয়, তবে এটি মেকপকে চলতে বাধা দেয়। এর সাথে
এনভায়রনমেন্ট ভেরিয়েবল আপনি makepp কে কিছু অপশনকে চুপচাপ উপেক্ষা করতে বলতে পারেন। মূল্য
বিকল্পগুলির একটি স্পেস বিভক্ত তালিকা হবে, যা 4টি ভেরিয়েন্টে আসতে পারে:

--দীর্ঘ=x
একটি দীর্ঘ বিকল্প যা একটি যুক্তি আশা করে। এই সত্যকে সমমানের মাধ্যমে ঘোষণা করতে হবে
চিহ্ন, যদিও প্রকৃত ব্যবহার হোয়াইটস্পেস দ্বারা পৃথক করা যেতে পারে, হয় "--long=bla" বা
"--লং ব্লা"।

--দীর্ঘ
একটি যুক্তি ছাড়া একটি দীর্ঘ বিকল্প.

-sx একটি সংক্ষিপ্ত বিকল্প যা একটি যুক্তি আশা করে। এই সত্য যোগ করে ঘোষণা করা আবশ্যক
সরাসরি বিকল্পের পরে কিছু, যদিও প্রকৃত ব্যবহার দ্বারা পৃথক করা যেতে পারে
সাদা স্থান, হয় "-sbla" বা "-s bla"।

-s একটি যুক্তি ছাড়া একটি সংক্ষিপ্ত বিকল্প.

যেমন কোনো যুক্তি ছাড়াই makepp-এর -R বিকল্পকে এক করে ওভাররাইড করুন এবং gmake-এর ডিবাগ গ্রহণ করুন
একটি যুক্তি সহ বিকল্প:

MAKEPP_IGNORE_OPTS='-R --debug=x' রপ্তানি করুন

অসঙ্গতিগুলি যে প্রয়োজন Makefile নামক পরিবর্তনগুলি


· মেকফাইলগুলি যা স্পষ্টভাবে কল করে মেকপকে সবকিছু তৈরি করতে বাধা দেয়।
আলাস পার্লের নিজস্ব "ExtUtils::MakeMaker" নিম্নলিখিত দুটি ফর্মের মধ্যে দ্বিতীয়টি করে
এই ভুলটি সংস্করণ 6.56 পর্যন্ত (পার্ল 5.12.1):

সাবডির:
cd subdir; করা

MAKE = তৈরি করা

· "VPATH" ভেরিয়েবলকে কিছু মানের সাথে সেট করাকে অন্তর্নিহিতভাবে "vpath % মান" বলা হয়। "vpath"
রিপোজিটরি মেকানিজমের সাথে স্টেটমেন্ট অনুকরণ করা হয়। সুতরাং, যেখানে জিমেকের বিকল্প
vpath-এ পাওয়া ফাইলের পাথ, makepp পরিবর্তে এটিকে প্রতীকীভাবে লিঙ্ক করবে
যেখানে এটি প্রয়োজন। এইভাবে makepp একটি অপরিবর্তিত স্ট্রিং প্রদান করবে, যা সাধারণত হয়
কোন সমস্যা নেই.

একটি vpath এর লক্ষ্যগুলি সমর্থিত নয়৷ (জিমেক তাদের বিবেচনা করে যদি তারা এর চেয়ে নতুন হয়
তাদের নির্ভরতা, কিন্তু যদি না হয়, টার্গেটটি বর্তমান ডিরেক্টরিতে পুনরায় তৈরি করা হবে
-- বরং অসামঞ্জস্যপূর্ণ।) vpath আনসেট করা সমর্থিত নয়।

· একটি মেকফাইলে পরে উপস্থিত একটি প্যাটার্ন নিয়ম আগে উপস্থিত একটিকে ওভাররাইড করে।
এটি GNU তৈরি থেকে পিছনের দিকে।

· অন্তর্নিহিত অন্তর্নিহিত নিয়মগুলির সেটটি GNU তৈরির নিয়মগুলির থেকে কিছুটা আলাদা,
যদিও পরিবর্তনশীল নামগুলি মূলত সামঞ্জস্যপূর্ণ। অন্তর্নির্মিত নিয়ম করা উচিত
সফলভাবে C/C++/Fortran প্রোগ্রাম কম্পাইল, এবং প্রকৃতপক্ষে অনুমান করতে সক্ষম হতে পারে
কিছু ক্ষেত্রে সঠিক লাইব্রেরিও। Modula-2 এবং RatFor এবং অন্যান্য বিরল জন্য সমর্থন
ভাষাগুলি ইচ্ছাকৃতভাবে উপস্থিত নয়, কারণ আমি GNU এর সাথে সমস্যায় পড়েছি
মেক এর নিয়ম যখন আমি ভুলবশত সেই ভাষার জন্য এক্সটেনশনগুলি পুনরায় ব্যবহার করি।

· "+" এর একটি কর্ম উপসর্গ নিঃশব্দে উপেক্ষা করা হয়।

· সংরক্ষণাগার সদস্য সমর্থিত নয়, এবং সংশ্লিষ্ট স্বয়ংক্রিয় ভেরিয়েবলও নয়
$%, "$(%D)", এবং "$(%F)"।

· কোন SCCS সমর্থন নেই।

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

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

· "শেল" ভেরিয়েবলটি বর্তমানে আংশিকভাবে উপেক্ষা করা হয়েছে। Makepp সবসময় ব্যবহার করে / বিন / SH
যদি না /usr/xpg4/bin/sh or /sbin/xpg4/sh পাওয়া যায় বা আপনি "শেল" রপ্তানি না করলে
আপনার makefile মধ্যে পরিবর্তনশীল. কিন্তু আপনি যদি করেন, কমান্ড পার্সার সম্পূর্ণরূপে নাও হতে পারে
আপনার শেল কমান্ড কি করে তা বুঝুন। উইন্ডোজ স্ট্রবেরি বা অ্যাক্টিভস্টেট পার্লে
আপনি পরিবর্তে আপনার SHELL ভেরিয়েবল সেট করতে হবে আগে কলিং makepp.

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

মধ্যবর্তী ফাইল মুছে ফেলা হয় না. (কারণ makepp সমস্ত ফাইল থাকার জন্য জোর দেয়
তারিখগুলি শেষ বিল্ডের মতো একই হতে হবে, মধ্যবর্তী ফাইলগুলি অবশ্যই সমস্ত হতে হবে৷
বর্তমান বা অন্যথায় পুনর্নির্মাণ ঘটবে।) কোন বিশেষ মর্যাদা দেওয়া নেই
মধ্যবর্তী ফাইল।

· একমাত্র বিশেষ লক্ষ্য যা সমর্থিত তা হল ".PHONE" এবং আংশিকভাবে ".SUFFIXES"। দ্য
অবশিষ্ট সহজভাবে ingored হয়.

বিশেষভাবে, GNU make-এর নিম্নলিখিত বিশেষ লক্ষ্যগুলি রয়েছে:

.Suffixes
Makepp ".SUFFIXES" কে উপেক্ষা করে ".SUFFIXES" এর বিশেষ ক্ষেত্রে ছাড়া
নির্ভরতা, এই মত:

প্রত্যয়:

যা এটিকে তার কোনো ডিফল্ট নিয়ম লোড না করতে বলে।

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

উপেক্ষা করুন
এই লক্ষ্য উপেক্ষা করা হয়. আপনি যদি ত্রুটিগুলি উপেক্ষা করতে চান তবে "ignore_error" শব্দটি রাখুন
(বা একটি বিয়োগ চিহ্ন) কমান্ডের সামনে যার প্রস্থান স্থিতি উপেক্ষা করা উচিত।

.নীরব
এই লক্ষ্য উপেক্ষা করা হয়. আপনি যদি আদেশগুলি প্রতিধ্বনিত না করতে চান তবে "নোইকো" শব্দটি রাখুন
(বা "@" অক্ষর) কমান্ডের সামনে যা প্রতিধ্বনিত হওয়ার কথা নয়,
অথবা makepp করতে "--silent" বিকল্পটি ব্যবহার করুন।

DELETE_ON_ERROR
EXPORT_ALL_VARIABLES
NOEXPORT
POSIX
.ডিফল্ট
এই লক্ষ্যগুলি সমর্থিত নয় এবং কেবল উপেক্ষা করা হয়।

· GNU মেক ফাংশন "eval", "flavor" এবং "value" বর্তমানে সমর্থিত নয়। আপনি
"$[...]" এর সাহায্যে আরও সোজা পথে ইভালের মতো একই জিনিস অর্জন করতে পারে
পরিবর্তনশীল বা ফাংশন সম্প্রসারণ।

· ডাবল কোলন নিয়ম সম্পূর্ণরূপে সমর্থিত নয়। (তারা হতে পারে না: মেকপের দৃষ্টান্তে,
একটি লক্ষ্য আপডেট করার একাধিক উপায় থাকতে পারে না।) বর্তমানে, প্রতিটি পরপর
একটি প্রদত্ত লক্ষ্যের জন্য ডাবল কোলন নিয়ম কেবল তার কমান্ড স্ট্রিং এবং নির্ভরতা যুক্ত করে
এই লক্ষ্যের জন্য কমান্ড স্ট্রিং এবং নির্ভরতা তালিকার তালিকা। উদাহরণস্বরূপ, যদি আপনি
এটা লেখো:

a :: খ
&cat b -oa

# পরে আপনার মেকফাইলে:
a :: গ
&cat c -o >>a

এইটা ঠিক আপনি লিখেছেন হিসাবে একই

a: bc
&cat b -oa
&cat c -o >>a

এটি অবশ্যই দ্বৈত কোলন নিয়মের উদ্দেশ্যে নয় এবং এটি সর্বদা হবে না
কাজ, কিন্তু এটি "পরিষ্কার" বা সমস্ত জিনিসের মতো লক্ষ্যগুলির জন্য কাজ করে
ExtUtils::MakeMaker তার মেকফাইলগুলিতে রাখে। অন্য কিছুর জন্য এটির উপর নির্ভর করবেন না
উত্তরাধিকার মেকফাইলসের চেয়ে।

· "$(ওয়াইল্ডকার্ড )" ফাংশনটি কেবল বিদ্যমান ফাইলগুলির সাথেই মেলে না, যে ফাইলগুলির সাথেও মেলে
এখনও বিদ্যমান নেই, কিন্তু যা একটি নিয়ম আছে যা makepp সময় দেখেছেন
"$(ওয়াইল্ডকার্ড )" ফাংশন মূল্যায়ন করা হয়।

· "সংজ্ঞায়িত" বিবৃতিটি সমর্থিত, তবে এটির আগে "@" পরিচালনা করা হয়
ভিন্নভাবে বর্তমানে makepp-এ, "@" একটি ভেরিয়েবলের সামনে যার একটি মাল্টি-লাইন আছে
মান শুধুমাত্র প্রথম লাইনের প্রতিধ্বনি দমন করবে। উদাহরণ স্বরূপ,

ইকো লাইন সংজ্ঞায়িত করুন
&ইকো লাইন1 -o $@
&ইকো লাইন2 -o>>$@
endef

x:
@$(ইকো-লাইন)

"&echo line2" এর মুদ্রণকে দমন করবে না যেমন এটি GNU তৈরিতে করে; এটা শুধুমাত্র হবে
"&echo line1" এর মুদ্রণ দমন করুন।

· Makepp নিম্নলিখিত পরিবেশ ভেরিয়েবল সমর্থন করে না (এটি তাদের সেট আপ করে না,
এবং এটি কেবল তাদের উপেক্ষা করে):

মেকওভাররাইডস
MFLAGS

অসঙ্গতিগুলি in ক্রম of অভিব্যক্তি সম্প্রসারণ
· মেকপ্পে, সমস্ত নির্ভরতা নিশ্চিত হওয়ার আগে নিয়ম ক্রিয়াগুলি প্রসারিত হয়
নির্মিত হয়েছে। আপনি নিয়ম পরিবর্তন করে এটির চারপাশে কাজ করতে পারেন যেমন:

foo: বার
genfoo <$(শেল বিড়াল বার)

এই:

foo: বার
genfoo < `বিড়াল বার`

বা এটি, যা সম্প্রসারণের সময় ফাইলটি তৈরি করবে:

foo: বার
genfoo < $(&cat $(বার তৈরি করুন))

এটি এখানে বাঞ্ছনীয়, কারণ ফাইলটি তালিকাভুক্ত বার এটিও একটি নির্ভরতা
নিয়ম, এবং makepp এখন এটি ধরতে পারে যখন আভিধানিকভাবে পুনর্নির্দেশ বিশ্লেষণ করে।

· যদিও আমি এটি ব্যবহার করতে দেখিনি, GNU make নিম্নলিখিতগুলিকে অনুমতি দেয়:

কোলন = :
a$(কোলন) খ
প্রতিধ্বনি $^

মেকেপ "$(কোলন)" প্রসারিত করে এটি কাজ করতে খুব দেরি করে। তবে এটি অফার করে
বিকল্প "$[colon]" সিনট্যাক্স, যা GNU তৈরির চেয়ে অনেক বেশি করতে পারে, কারণ এটি
খুব তাড়াতাড়ি প্রসারিত।

"$(বানান)" may অন্তর্ভুক্ত করা শূণ্যস্থান
একটি আনইনস্টল করা মেকপিপে বা প্ল্যাটফর্মটি পার্ল স্ক্রিপ্ট শুরু করা সমর্থন করে বলে মনে হয় না
ম্যাজিক সংখ্যা দ্বারা বা "--ঐতিহ্যবাহী-পুনরাবৃত্ত-মেক" সহ এই পরিবর্তনশীলটি অন্তত অন্তর্ভুক্ত করবে
একটি স্থান। এটি একটি কমান্ড হিসাবে ব্যবহার করার সময় এটি একটি সমস্যা নয়। কিন্তু যখন এটি একটি হিসাবে পাস
একটি স্ক্রিপ্টের উদ্ধৃতিহীন প্যারামিটার (যেমন পার্ল 5.14.0 বিল্ড সিস্টেম করে), এটি এটিকে ছিঁড়ে ফেলবে
আলাদা আলাদা প্যারামিটার, যা বিভ্রান্তির দিকে পরিচালিত করে। তাই একটি প্যারামিটার হিসাবে এটি নিরাপদ
এটিকে '$(MAKE)' হিসেবে উদ্ধৃত করুন। যা পশ্চাদগামী সামঞ্জস্য ভঙ্গ করে না।

লক্ষ্য-নির্দিষ্ট বরাদ্দকরণ না প্রসারিত করা
Makepp-এর লক্ষ্য-নির্দিষ্ট ভেরিয়েবলগুলি GNU make-এর থেকে কিছুটা আলাদা যে তারা
শুধুমাত্র উল্লিখিত একটি ফাইলের জন্য নিয়মের জন্য প্রযোজ্য, এবং এর কোনো পূর্বসূরীদের জন্য নয়; দেখা
লক্ষ্য-নির্দিষ্ট অ্যাসাইনমেন্ট।

প্যারেন্টেসিস or ধনুর্বন্ধনী না নীড়
Makepp প্রথম মিলিত বন্ধনী বা বন্ধনীতে অভিব্যক্তি শেষ করে। এর পরিবর্তে

$(somefunction... ( ) ...) # GNU মেক স্টাইল

আপনি এই যে কোনো একটি ব্যবহার করতে হবে

${somefunction ... ( ) ...} # GNU সামঞ্জস্যপূর্ণ করে তোলে
$((কিছু ফাংশন ... ( ) ...)) # মেকপ এক্সটেনশন

এটি সম্ভবত সংস্করণ 2.1 এ সংশোধন করা হবে, হয়তো ঐচ্ছিকভাবে।

গৌণ পয়েন্ট
প্যাটার্ন নির্ভরতা ভুয়া লক্ষ্যের সাথে মেলে না
%.a: %.b; ...
$(ফোনি এক্সবি): ; ... # xa নির্মাণের একটি উপায় প্রদান করে না

মন্তব্যের ধারাবাহিকতা লাইন নেই
# এই \
একটি 2 লাইন মন্তব্য নয়

আদেশ লাইন অসম্পূর্ণতা


Makepp মেকের আরও দরকারী কমান্ড লাইন বিকল্পগুলির কয়েকটি সমর্থন করে। নিম্নলিখিত, তবে,
সমর্থিত নয়:

-d বা --ডিবাগ
-চ -
Makepp এর অভ্যন্তরীণ makefile অবজেক্ট ফাইল অবজেক্টের সাথে লিঙ্ক করা হয়, তাই এটি পরিচালনা করতে পারে না
stdin

-i
-l বা --লোড-গড় বা --max-লোড
-m Makepp এর "-m" বিকল্পটি স্বাক্ষর পদ্ধতি নির্বাচনের সাথে সম্পর্কযুক্ত, যেখানে GNU তৈরি
উপেক্ষা করে -m.

-p বা --প্রিন্ট-ডেটা-বেস
-q বা --প্রশ্ন
-R বা --নো-বিল্টিন-ভেরিয়েবল
Makepp এর "-R" বিকল্পটি আসলে সম্পূর্ণ ভিন্ন কিছু করে।

-এস --না-রাখুন বা --স্টপ
"--স্টপ" বিকল্পটি সমস্ত নিয়ম শেখার পরে মেকপ্প বন্ধ করে (ঘুমিয়ে দেয়) তাই আপনি
সম্পাদনা চালিয়ে যেতে পারেন।

-t বা -- স্পর্শ
-w বা --প্রিন্ট-ডিরেক্টরি
এটি স্বয়ংক্রিয়ভাবে ঘটে।

--সতর্ক-অনির্ধারিত-ভেরিয়েবল

কেউ যত্ন নিলে এর মধ্যে কিছু সহজেই সমর্থন করা যেতে পারে।

পরিবর্তনশীল অসম্পূর্ণতা


Makepp "$(CC)" বা এর মত ভেরিয়েবলের জন্য ফিরে আসার জন্য একটি মিলিত কমান্ডের জন্য $PATH-এ দেখায়
"$(CXX)", যখন GNU make-এর স্ট্যাটিক ডিফল্ট আছে। এছাড়াও makepp "gcc" কে অগ্রাধিকার দেয় এবং
"g++" যদিও আশ্চর্যজনকভাবে GNU পূর্বের জন্য "cc" ফেরত দেয়, কিন্তু একই রকম
পরবর্তী. আপনি এগুলিকে মেকফাইলে, কমান্ড লাইনে বা এক্সপোর্ট করে ওভাররাইড করতে পারেন
makepp আহ্বান করার আগে একই নামের ভেরিয়েবল।

onworks.net পরিষেবা ব্যবহার করে অনলাইনে makepp_incompatibities ব্যবহার করুন


বিনামূল্যে সার্ভার এবং ওয়ার্কস্টেশন

উইন্ডোজ এবং লিনাক্স অ্যাপ ডাউনলোড করুন

লিনাক্স কমান্ডগুলি

Ad