我有一個用C語言編寫的程序,並且鏈接到我的靜態庫(.a)。我怎樣才能使這個程序儘可能少,而無需觸摸代碼(我可以重新編譯它等)?製作一個儘可能少的二進制文件
2
A
回答
1
首先興是從一切都像調試符號剝離它,等
在Linux上,你可以在一個終端使用:
strip myexe
你會看到大小大幅降低^^
我不是windows大師,但如果你使用VS,使用發佈版本。
在每個平臺上,不要使用生成調試符號的編譯器標誌。如果您可以使用優化大小的標誌。
當然,如果您使用系統庫或通用安裝的庫,請使用動態鏈接庫(dll)或共享對象(so)。這些庫不會包含在你的可執行文件中。
my2c
0
如果您使用的是gcc,-Os
標誌將針對小型可執行文件進行優化。我認爲gcc會嘗試在大多數系統上默認鏈接到共享庫,但你也可能想看看。
1
有許多可執行的打包程序可以做你想做的事情。首先,剝去像神經建議(如果你有符號編譯)的任何符號,然後使用這些可執行的打包程序之一:http://en.wikipedia.org/wiki/Executable_compression
相關問題
- 1. CMake:如何生成儘可能靜態的二進制文件「
- 2. 翻譯回一個未知的二進制文件!?可能嗎?
- 3. 二進制文件有多少種可能性?
- 4. 二進制文件操作
- 5. Erlang二進制文件的二進制操作?
- 6. 如何在另一個二進制文件中定義二進制文件?
- 7. 複製二進制文件
- 8. GCC編譯的二進制文件給予 「不能執行二進制文件」
- 9. g ++編譯的二進制文件給「不能執行二進制文件」
- 10. 複製一個二進制文件,一個jar
- 11. 二進制文件的智能差異
- 12. 是否可以查看一個和零個二進制文件?
- 13. 如何編寫一個二進制數字填充零的二進制文件?
- 14. AEM中的二進制減少複製
- 15. 把二進制文件當作一個十六進制字符串
- 16. OpenGrok:ClearCaseRepository不工作(缺少二進制文件?)
- 17. 在一個二進制文件中的C++多個大文件
- 18. 的Python:二進制文件
- 19. python性能處理二進制文件
- 20. AWS:不能執行二進制文件
- 21. 性能讀取二進制文件
- 22. 二進制文件解析:性能
- 23. .NET二進制文件讀取性能
- 24. 儘管小項目g ++產生大的二進制文件
- 25. 爲什麼我不能寫一個二進制文件?
- 26. 在二進制分隔符上分割一個二進制文件?
- 27. Frama-C Windows二進制文件可用?
- 28. 從一個二進制文件讀取信息並寫入另一個二進制文件
- 29. 詹金斯搬運工缺少一些二進制文件
- 30. 複製二進制文件的內容
+1的封隔器。 – neuro 2011-01-21 15:14:33