Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengurangkan Saiz Boleh Laksana C/C dengan Menanggalkan Simbol yang Tidak Digunakan?

Bagaimanakah Saya Boleh Mengurangkan Saiz Boleh Laksana C/C dengan Menanggalkan Simbol yang Tidak Digunakan?

Barbara Streisand
Lepaskan: 2024-12-17 13:05:25
asal
986 orang telah melayarinya

How Can I Reduce C/C   Executable Size by Stripping Unused Symbols?

Mengoptimumkan Saiz Boleh Laksana: Menanggalkan Simbol C/C Tidak Digunakan

Meminimumkan saiz boleh laku adalah penting, terutamanya dalam persekitaran yang terhad sumber. Dengan menanggalkan simbol yang tidak digunakan daripada boleh laku, ia menjadi lebih ramping dan lebih cekap dari segi penggunaan memori. Artikel ini meneroka cara untuk mencapai pengoptimuman ini menggunakan GCC dan ld.

Konfigurasi GCC dan ld

GCC dan ld boleh dikonfigurasikan untuk mengalih keluar simbol yang tidak digunakan daripada boleh laku dan pustaka. Untuk melakukan ini, dua peringkat kompilasi diperlukan:

  1. Pemisahan Data: Semasa penyusunan, gunakan bendera -fdata-sections dan -ffunction-sections dengan GCC. Bendera ini mengarahkan pengkompil untuk mengasingkan kod ke bahagian berasingan dalam setiap unit terjemahan, termasuk fungsi, kelas dan pembolehubah luaran.
  2. Pengoptimuman Pautan: Apabila memautkan unit terjemahan bersama, gunakan pemaut bendera pengoptimuman -Wl,--gc-sections. Bendera ini mencetuskan pemaut untuk membuang mana-mana bahagian yang tidak dirujuk secara automatik.

Contoh

Pertimbangkan ujian fail.cpp yang mengandungi dua fungsi yang diisytiharkan, tetapi satu daripadanya tidak digunakan. Untuk mengecualikan fungsi yang tidak digunakan daripada boleh laku akhir, gunakan arahan berikut:

gcc -Os -fdata-sections -ffunction-sections test.cpp -o test -Wl,--gc-sections
Salin selepas log masuk

Bendera -Os mengarahkan GCC untuk mengutamakan pengoptimuman saiz kod.

Kesimpulan

Dengan menggunakan perubahan konfigurasi ini, pengkompil dan pemaut boleh mengenal pasti dan mengalih keluar simbol yang tidak digunakan, mengurangkan dengan ketara saiz boleh laku yang terhasil. Pengoptimuman ini amat berharga untuk sistem terbenam atau persekitaran lain dengan had sumber yang ketat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengurangkan Saiz Boleh Laksana C/C dengan Menanggalkan Simbol yang Tidak Digunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan