繁体   English   中英

在GCC中进行优化后如何丢弃未使用的功能

[英]How to discard unused function after optimization in GCC

我在进行GCC优化时遇到了问题,

当我使用gcc test.c -Osgcc test.c -O2 ,main()函数将放在起始地址。

但是有些未使用的函数,例如<_start> <exit> <memset> ,为什么它们仍然存在?

我尝试使用-ffunction-sections -fdata-sections-gc-sections ,它不起作用。

我的简单代码:

#include <stdio.h>
int main(){
char buff[20];
sprintf(buff, "%s%d", "hello", 6);
return 0; }

_start通常是可执行文件的真实入口点(在调用main之前初始化C运行时的入口点); main终止时,将隐式调用exit memset在各种情况下(例如,当堆栈上的缓冲区初始化为零时)由编译器隐式调用,或者可以由printf实现使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM