এই নির্দেশাবলী ধরে নিয়েছে যে আপনি ক্রীতদাসের উপর একটি ক্রস-সংকলক রয়েছেন। দয়া করে পড়ুন কিভাবে ক্রস-সংকলনের জন্য একটি জিসিসি 4.7 সরঞ্জামচেন তৈরি করবেন? আপনি না থাকলে। এটি make
মাস্টারে ইনস্টল করাও দরকারী ।
স্থাপন
প্রথমত, আমাদের অবশ্যই ইনস্টল করা উচিত distcc
। অপারেটিং সিস্টেমের প্যাকেজ ম্যানেজমেন্ট সিস্টেমগুলির দ্বারা সরবরাহিত প্রি বিল্ট প্যাকেজগুলি আমরা ব্যবহার করব, তবে আপনি যদি চান তবে উত্স থেকে ইনস্টল করতে পারেন!
ডেবিয়ান
sudo apt-get install distcc
খিলান
sudo pacman -S distcc
কনফিগারেশন
স্লেভ - দেবিয়ান / উবুন্টু
টোডো: এটি কি আর্কের জন্য একই? যদি তা না হয় তবে আমরা কীভাবে আর্চ কনফিগার করব?
আমাদের সেটিংসটি এডজাস্ট করতে হবে /etc/default/distcc
। আপনার প্রিয় সম্পাদকটিতে এটিকে মূল হিসাবে খুলুন; আমি দৌড়ে গেলাম sudo vim /etc/default/distcc
।
আপনার পরিবর্তন করা দরকার STARTDISTCC
, ALLOWEDNETS
এবং LISTENER
। ধরে নিই যে আপনার মাস্টার এবং স্লেভ একই সাবনেটে আছেন এবং সেই সাবনেট রয়েছে 192.168.0.0/24
, সেগুলি সেট করা উচিত
STARTDISTCC="true"
ALLOWEDNETS="192.168.0.0/24"
LISTENER="0.0.0.0"
তদুপরি, আপনার সংকলকটিতে আপনার পথটি যুক্ত করা উচিত। আমি নিম্নলিখিত লাইনটি যুক্ত করে এটি করেছি
PATH=$PATH:/home/alex/x-tools/arm-unknown-linux-gnueabi/bin
দ্রষ্টব্য দাসের ডিমনটি distccd
ব্যবহারকারী হিসাবে চলবে , সুতরাং আপনার নির্বাহযোগ্যদের উপর যথাযথ অনুমতিগুলি কনফিগার করা আছে তা নিশ্চিত করুন; আমি সবাইকে ফাঁসি দেওয়ার অনুমতি দিয়েছি।
ডেমন চালান - এটি সাধারণত বুটে শুরু করা হত - চালিয়ে
sudo service distcc start
মাস্টার - খিলান
টোডো: এটি কি দেবিয়ানদের জন্য একই? যদি তা না হয় তবে আমরা কীভাবে দেবিয়ানকে কনফিগার করব?
~/.distcc/hosts
আপনার প্রিয় পাঠ্য সম্পাদকটিতে খুলুন এবং স্লেভের আইপি ঠিকানা যুক্ত করুন। আমার hosts
ফাইলটিতে একটি একক লাইন রয়েছে, যা পড়ে 192.168.0.22
।
দ্রষ্টব্য আপনার ক্রীতদাসের জন্য একটি স্থির আইপি ঠিকানা বরাদ্দ করা ভাল ধারণা হতে পারে, অন্যথায় আইপি ঠিকানা পরিবর্তন হলে আপনাকে এই ফাইলটি পরিবর্তন করতে হবে।
ব্যবহার
সব ঠিকঠাক চলছে, আপনার খুব সহজেই ডিস্টিসি ব্যবহার করতে সক্ষম হওয়া উচিত। উদাহরণস্বরূপ, কম্পাইল hello.c
করতে hello.o
, চালান
distcc arm-unknown-linux-gnueabi-gcc -c -o hello.o hello.c
উদাহরণ: হ্যালো ওয়ার্ল্ড!
আমি আমার হোম ডিরেক্টরিতে একটি সাধারণ উদাহরণ স্থাপন করেছি, এতে 2 টি ফাইল রয়েছে।
# file: Makefile
hello.o: hello.c
hello: hello.o
# file: hello.c
#include <stdio.h>
int main() {
printf("Hello World!\n");
return 0;
}
চলমান make hello
স্থানীয়ভাবে সংকলন করা হবে; আপনার প্রথমে দ্রুত পরীক্ষা হিসাবে এটি করা উচিত। যাও, আমি অপেক্ষা করব।
চলমান make hello CC="distcc arm-unknown-linux-gnueabi-gcc"
একটি বিতরণ সংকলন চালাবে।
দ্রষ্টব্য প্রিপ্রসেসিং এবং লিঙ্কিংটি আরপিআইতে এখনও ঘটে।
ডিবাগ
এটি সঠিকভাবে কাজ করতে আমার কিছুটা সময় লেগেছে, এবং আমি খুঁজে পেয়েছি সেরা ডিবাগিং সরঞ্জামটি ছিল একটি সাধারণ পরিবেশের পরিবর্তনশীল। আপনি যদি
export DISTCC_VERBOSE=1
distcc
দরকারী তথ্য ক্লায়েন্ট ইচ্ছা আউটপুট লোড।
এটি একটি দীর্ঘ পোস্ট, তাই কোনও প্রতিক্রিয়া কৃতজ্ঞতার সাথে গ্রহণ করা হবে। আমি আশা করি আমি সমস্ত পদক্ষেপের কথা মনে রেখেছি!