【发布时间】:2009-10-29 22:25:22
【问题描述】:
我很无聊,正在玩各种 gcc 选项,看看我可以生成多大的二进制文件。
我在 ld64 中发现了一个 -s 标志,据说该标志不应该在可执行文件中包含符号表信息。 ld64 的手册页说该标志被忽略。
gcc 的手册页说它是一个链接器选项(对我来说这意味着它只会在 ld64 被调用时启用 -s 标志)并且没有提及被忽略。
不过,这似乎并没有被忽视……
me@dinosaurhunter ~/bin/c> cat small.c
int main(void) { return 1; }
me@dinosaurhunter ~/bin/c> gcc -Wall small.c -o small
me@dinosaurhunter ~/bin/c> wc -c small
12564 small
me@dinosaurhunter ~/bin/c> gcc -Wall -s small.c -o small
ld64: warning: option -s is obsolete and being ignored
me@dinosaurhunter ~/bin/c> wc -c small
12468 small
如果标志已过时并被忽略 - 为什么二进制文件的大小不同?
【问题讨论】:
标签: macos compiler-construction linker