Saya perlu mengoptimalkan ukuran executable saya ( ARM
pengembangan) dan saya perhatikan bahwa dalam skema build saya saat ini ( gcc
+ ld
) simbol yang tidak digunakan tidak dilucuti.
Penggunaan arm-strip --strip-unneeded
untuk executable / perpustakaan yang dihasilkan tidak mengubah ukuran keluaran dari executable (saya tidak tahu mengapa, mungkin itu tidak bisa) .
Bagaimana cara (jika ada) untuk memodifikasi pipeline bangunan saya, sehingga simbol yang tidak digunakan dihilangkan dari file yang dihasilkan?
Aku bahkan tidak akan berpikir tentang ini, tapi lingkungan tertanam saya saat ini sangat tidak "kuat" dan menyimpan bahkan 500K
dari 2M
hasil dalam meningkatkan kinerja pemuatan sangat bagus.
Memperbarui:
Sayangnya gcc
versi saat ini yang saya gunakan tidak memiliki -dead-strip
opsi dan -ffunction-sections... + --gc-sections
untuk ld
tidak memberikan perbedaan yang signifikan untuk keluaran yang dihasilkan.
Saya terkejut bahwa ini bahkan menjadi masalah, karena saya yakin itu gcc + ld
harus secara otomatis menghapus simbol yang tidak digunakan (mengapa mereka bahkan harus menyimpannya?).
boost
perpustakaan, .exe
file yang dihasilkan berisi banyak file objek yang tidak terpakai dan karena spesifikasi runtime yang saya sematkan saat ini , memulai 10mb
aplikasi membutuhkan waktu lebih lama daripada, misalnya, memulai 500k
aplikasi.