সি এবং সি ++ এর বিশ্ব থেকে আগত, বেশিরভাগ বিল্ড সিস্টেমের একটি installলক্ষ্য রয়েছে, উল্লেখযোগ্যভাবে মেকফাইলস (যেখানে এটি জিএনইউ উদাহরণস্বরূপ প্রস্তাবিত হয় ) বা সিএমকেক । এই লক্ষ্যটি অপারেটিং সিস্টেমে রানটাইম ফাইলগুলি (এক্সিকিউটেবল, গ্রন্থাগার, ...) অনুলিপি করে (উদাহরণস্বরূপ, C:\Program Files\উইন্ডোজে)।
এটি সত্যই হ্যাকিং অনুভব করে, যেহেতু প্রোগ্রামগুলি ইনস্টল করার জন্য বিল্ড সিস্টেমের দায়িত্ব আমার নেই (এটি আসলে অপারেটিং সিস্টেম / প্যাকেজ ম্যানেজারের দায়িত্ব)। এর অর্থ হ'ল বিল্ড সিস্টেম বা বিল্ড স্ক্রিপ্টটি অবশ্যই পরিবেশিত ভেরিয়েবল, রেজিস্ট্রি ভেরিয়েবল, সিমলিংক, অনুমতি ইত্যাদির সাথে ইনস্টলড প্রোগ্রামগুলির সংগঠনটি জানতে হবে must
সর্বোপরি, বিল্ড সিস্টেমগুলির একটি releaseলক্ষ্য থাকা উচিত যা একটি ইনস্টলযোগ্য প্রোগ্রাম আউটপুট দেয় (উদাহরণস্বরূপ .debবা .msi) এবং তারপরে অপারেটিং সিস্টেমটিকে দয়া করে সেই প্রোগ্রামটি ইনস্টল করতে বলে। এটি ব্যবহারকারীকে টাইপ না করেই আনইনস্টল করার অনুমতি দেয় make uninstall।
সুতরাং, আমার প্রশ্ন: বিল্ড সিস্টেম সাধারণত installলক্ষ্য রাখার পরামর্শ দেয় কেন ?
make installসাধারণত /usr/local(বা এমনকি /opt) এর অধীন ইনস্টল করা হয় যা ডিরেক্টরিগুলি "কোর ওএস / প্যাকেজ পরিচালনা সিস্টেম" দ্বারা পরিচালিত হয় না। যদিও উইন্ডোজ কিছু অনুরূপ কনভেনশন আছে কিনা ধারণা নেই।
make installযখন আমরা ক্রস সংকলনের বিষয়ে কথা বলি তখন কোনও অর্থ হয় না
DESTDIR।