【发布时间】:2020-04-12 19:41:24
【问题描述】:
在 AIX 中,不同版本的编译器能否使可执行文件(或库)大小不同?
问题
什么会影响可执行文件/库的大小?
- 编译器版本不同。
- 不同的编译选项。
- 不同的操作系统版本及其库(如 libm.a、libpthread.a ..)。
- 更多?
一些背景。
在这里,我们有一堆旧的可执行文件和库,它们不是版本控制下的源代码。我们需要弄清楚可执行文件是从我们拥有的源代码构建的。所以我们再次构建它,但是结果(exec,libs)大小不一样。
尝试..
我试过了..
- dump -X64 -c : 它显示了编译时使用的编译器的一些信息。二进制文件的编译器版本是“IBM XL C/C++ .. 11.1.0.14”。但是我们拥有的编译器版本是'IBM .. 11.1.0.13'。这些能有所作为吗?
- ar -X64 -x :比较存档中提取的文件。当我“制作”一些库时,生成了目标文件(* .o)。大多数文件大小相同,但有些文件大小不同。转储它们(大小不同的文件)时,编译器不一样。
任何帮助、建议、链接都会有所帮助。谢谢。
【问题讨论】:
-
有很多因素会影响可执行程序文件的大小。您列出的那些就是其中之一。对库的更新也可能会影响大小。至于编译器版本,对编译器的更新可能包括对代码生成的更改,这当然会影响大小。它还可能包括对优化的更改,这也可能影响大小。