আমাকে আমার নির্বাহযোগ্য মারাত্মকভাবে ( ARMউন্নয়ন) আকারটি অনুকূল করতে হবে এবং আমি লক্ষ্য করেছি যে আমার বর্তমান বিল্ড স্কিমে (gcc + ld) অব্যবহৃত চিহ্নগুলি ছিনিয়ে নেওয়া হচ্ছে না।
arm-strip --strip-unneededফলস্বরূপ এক্সিকিউটেবল / লাইব্রেরিগুলির জন্য ব্যবহারের ফলে এক্সিকিউটেবলের আউটপুট আকার পরিবর্তন হয় না (কেন জানি না, সম্ভবত এটি সহজভাবে পারে না) ।
আমার বিল্ডিং পাইপলাইনটি সংশোধন করার উপায় কী (যদি তা বিদ্যমান থাকে) , যাতে ফলস্বরূপ ফাইলটি থেকে অব্যবহৃত চিহ্নগুলি ছিনিয়ে নেওয়া যায়?
আমি এটি সম্পর্কেও ভাবব না, তবে আমার বর্তমান এম্বেড থাকা পরিবেশ খুব "শক্তিশালী" নয় এবং এমনকি ফলাফলের 500Kবাইরে সাশ্রয় 2Mকরা খুব দুর্দান্ত লোডিং পারফরম্যান্স বৃদ্ধির কারণ।
হালনাগাদ:
দুর্ভাগ্যবশত বর্তমান gccসংস্করণ আমি ব্যবহারের নেই -dead-stripবিকল্প এবং -ffunction-sections... + --gc-sectionsজন্যld ফলে আউটপুট জন্য কোনো উল্লেখযোগ্য পার্থক্য দেয় না।
আমি হতবাক হয়ে গিয়েছি যে এটি এমনকি একটি সমস্যা হয়ে দাঁড়িয়েছে, কারণ আমি নিশ্চিত ছিলাম যে gcc + ldঅব্যবহৃত চিহ্নগুলি স্বয়ংক্রিয়ভাবে ফেলা উচিত (কেন তাদের এমনকি এগুলি রাখতে হবে?)।
boostলাইব্রেরি ব্যবহার করে এমন কিছু বিদ্যমান অ্যাপ্লিকেশন পোর্ট করার চেষ্টা করি , ফলে প্রাপ্ত .exeফাইলটিতে অনেক অব্যবহৃত অবজেক্ট ফাইল থাকে এবং আমার বর্তমান এম্বেড থাকা রানটাইমের স্পেসিফিকেশনগুলির কারণে , 10mbউদাহরণস্বরূপ, 500kঅ্যাপ্লিকেশন শুরু করা এর চেয়ে অনেক বেশি সময় নেয় ।