AIX 的 XL 编译器的 -qfuncsect 选项的 gcc 等效选项是啥?
Posted
技术标签:
【中文标题】AIX 的 XL 编译器的 -qfuncsect 选项的 gcc 等效选项是啥?【英文标题】:What is the gcc equivalent option for the -qfuncsect option of XL compiler of AIX?AIX 的 XL 编译器的 -qfuncsect 选项的 gcc 等效选项是什么? 【发布时间】:2010-11-24 12:37:08 【问题描述】:AIX 的 XL 编译器似乎具有 -qfuncsect 选项,该选项将每个函数放在单独的对象控制部分中,其效果是,在创建最终可执行文件时,它有助于删除不需要的函数。
在 gcc 中是否有相同的等效选项?我找不到相同的。
【问题讨论】:
你想达到什么目的?据我在我的平台(linux)和 gcc 上看到的,最终的可执行文件已经只有必要的功能了。 我无法实现您在 VxWorks (MIPS) 上所获得的一切。如果一个文件包含 5 个函数而我的应用程序只使用 2 个函数,那么其他 3 个函数也将被链接,这不是真的吗?如果我错了,请纠正我。谢谢! 【参考方案1】:-ffunction-sections
-fdata-sections
http://gcc.gnu.org/onlinedocs/gcc-4.0.4/gcc/Optimize-Options.html
【讨论】:
当我在编译器中使用这些选项时,是否也应该将一些选项传递给链接器?我希望它适用于 VxWorks(MIPS 和更多架构)。 它还在此页面中对这些选项的解释中说,链接器将生成更大的对象和可执行文件。更大的目标文件很好,但是为什么更大的可执行文件,这个练习的重点是减少可执行文件的大小对吧? 如果您使用 gcc,您可以使用 -Wl 将参数传递给链接器。您应该发送给链接器的是 --gc-sections。所以除了上面提到的你还应该有 -Wl,--gc-sections【参考方案2】:见-ffunction-sections
【讨论】:
以上是关于AIX 的 XL 编译器的 -qfuncsect 选项的 gcc 等效选项是啥?的主要内容,如果未能解决你的问题,请参考以下文章