GCC是否合并了一起编译的文件?

时间:2015-06-07 19:26:51

标签: gcc inline

假设您prog.c包含lib.h,其功能在lib.c中定义,您使用gcc -O3 lib.c prog.c构建程序。

GCC在编译之前是否合并了两个源文件?

GCC是否能够将lib.c的短函数内联到生成的二进制文件中?

答案摘要

这就是诀窍:gcc -flto -O3 lib.c prog.c

两个源文件仍然是单独编译的,但链接器能够将函数从一个文件内联到另一个文件中。

1 个答案:

答案 0 :(得分:1)

  

GCC在编译之前是否合并了两个源文件?

不,它没有

  

GCC是否能够将lib.c的短函数内联到生成的二进制文件中?

是的,在高级优化级别。查看整个程序优化,链接时间优化和类似选项