我想尽可能多地脱衣——在Linux上:一个精灵.我只想把我需要的东西放进go .

我试着用strip:

strip --strip-all elf

但它似乎做得不好:nm仍然显示很多东西,二进制仍然很大.

我该怎么办?

推荐答案

如果其他一切都失败了,你可以从man strip开始阅读文档.

说真的,也许你的应用程序有很多符号和代码.在一个极端情况下,最大的尺寸缩减是rm elf,但是你的程序将不再运行.这完全取决于your program以及你在其中编码了什么.

作为一个具体的例子,我最近使用了一个大的C++库,其中没有strip个参数的大小将从400 +MB缩小到大约28 MB.但是,您无法再与它进行链接(在其他共享库的上下文中),这使得它有些无用.

但当使用strip --strip-unneeded时,它将大小从400+mb更改为55MB,这仍然是相当可观的,但允许从其他共享库访问该库.

简而言之,我相信strip.如果不更改代码,您的应用程序可能无法进一步缩减.

Linux相关问答推荐

仅使用Find搜索32字符长的目录

pci_user_write_config_word在哪里实现?

在 Linux 中屏蔽文件中的位 - 按位运算

如何将一个变量的 2 行添加到另一个变量的特定行?

Linux PREEMPT_RT:SCHED_OTHER 的性能优于 SCHED_FIFO.为什么?

使用 AWK 过滤 Linux 输出

将行转换为一条

我可以防止 gcc 优化器延迟内存分配吗?

根据外部请求在 Netbeans 中启动 XDebug

使用 AWS CLI 进行 Bash - 无法找到凭证

sed: -i 不能与 Mac OS X 上的标准输入一起使用

/usr/local/bin/ 中Collection的权限被拒绝

如何使用完整路径或文件名显示 grep 结果

在 bash 中检测公共 IP 地址的方法

一个进程如何拦截Linux上另一个进程的stdout和stderr?

如何以编程方式禁用硬件预取?

如何运行时调试共享库?

在 Linux 中,名称与正则表达式匹配的文件的磁盘使用情况?

如何获取 GNU Makefile 中使用的 shell 命令的退出状态?

如何在redhat linux上安装maven