我有一个用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