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