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-sections--gc-sections
- 3 回答
- 0 關注
- 1226 瀏覽
添加回答
舉報
0/150
提交
取消
