亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

GCC和ld如何刪除未使用的C/C+符號?

GCC和ld如何刪除未使用的C/C+符號?

C++ C
斯蒂芬大帝 2019-07-05 13:00:52
GCC和ld如何刪除未使用的C/C+符號?我需要嚴格優化可執行文件的大小(ARM),我注意到在我當前的構建方案中(gcc + ld)未使用的符號不會被剝去。的用法arm-strip --strip-unneeded對于生成的可執行文件/庫,不會更改可執行文件的輸出大小。(我不知道為什么,也許根本不能).會有什么辦法(如果存在)修改我的建筑物管道,以便從結果文件中刪除未使用的符號?我甚至不會想到這一點,但我目前的嵌入式環境并不是很“強大”,甚至可以保存。500K離開2M結果是一個非常好的加載性能提高。最新情況:不幸的是gcc我使用的版本沒有-dead-strip選項和-ffunction-sections... + --gc-sections為ld對結果的輸出沒有任何顯著的差異。我很震驚這甚至變成了一個問題,因為我確信gcc + ld應該自動刪除未使用的符號(為什么它們必須保留它們?)。
查看完整描述

3 回答

?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

如果這條線是值得相信的,你需要提供-ffunction-sections-fdata-sectionsGCC將把每個函數和數據對象放在自己的部分。然后你給我--gc-sections移除未使用的部分。


查看完整回答
反對 回復 2019-07-05
  • 3 回答
  • 0 關注
  • 1226 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號