我有一個用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. 複製二進制文件
- 9. 如何從一個二進制文件
- 10. 如何從一個二進制文件
- 11. 創建一個二進制文件
- 12. GCC編譯的二進制文件給予 「不能執行二進制文件」
- 13. g ++編譯的二進制文件給「不能執行二進制文件」
- 14. 在GIT中只強制一個文件爲二進制文件
- 15. 複製一個二進制文件,一個jar
- 16. 二進制文件的智能差異
- 17. 是否可以查看一個和零個二進制文件?
- 18. 如何編寫一個二進制數字填充零的二進制文件?
- 19. AEM中的二進制減少複製
- 20. 把二進制文件當作一個十六進制字符串
- 21. OpenGrok:ClearCaseRepository不工作(缺少二進制文件?)
- 22. 在一個二進制文件中的C++多個大文件
- 23. 的Python:二進制文件
- 24. Hadoop的二進制文件
- 25. 二進制文件讀取性能C++
- 26. 二進制文件解析:性能
- 27. 性能讀取二進制文件
- 28. C++不能執行二進制文件
- 29. .NET二進制文件讀取性能
- 30. AWS:不能執行二進制文件
+1的封隔器。 – neuro 2011-01-21 15:14:33