c - 传递给 gcc 的多个源文件是否被视为一个翻译单元?

标签 c gcc lto translation-unit

<分区>

我想我已经读到,根据 Single Compilation Unit,同时使用 gcc 编译多个文件将实现与将所有源添加到单个源文件中相同的效果。 ,但我再也找不到任何相关资料了。是真的吗?

我们目前正在尝试将二进制文件缩小到尽可能小的尺寸,并正在应用多种技术来实现这一目标。我们已经讨论到关于单个编译单元之间的差异的讨论,Link Time Optimization并更改构建以在单个编译器调用中编译所有源代码,例如 gcc -o binary $CFLAGS $INCLUDES $CDEFS a.c b.c c.c d.c e.c

最佳答案

没有。每个传递给编译器的独立 .c 文件都被视为一个翻译单元,因此传递给编译器的多个文件会产生多个独立的翻译单元。

关于c - 传递给 gcc 的多个源文件是否被视为一个翻译单元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54891986/

相关文章:

c - 防止 GCC LTO 删除函数

gcc - 什么是 GCC lto 包装器?

c - 结构程序未按预期工作(错误)

c - 是否可以在 Android 中使用 sched_setaffinity 设置亲和性?

iOS 14 链接模块标志 'Dwarf Version' : IDs have conflicting behaviors

c++ - cpp 的未知编译器标志/参数

c - 如何使用 _Generic 定义通用函数以在 C 中接受输入?

c - 循环中的打印功能仅在循环退出后打印所有内容

c - 打印自己的程序,它是如何工作的?

gcc - cmake if 测试 GCC