0

我编译了一个包含以下行的 example.c 文件:

#include "parse/properties/properties.h"

编译器创建一个 example.o 文件。头文件的路径是否包含在 example.o 文件中?还是该信息是外部的?

4

2 回答 2

3

目标文件格式可能不标准化(标准甚至没有提到“目标文件”)。编译器可能会插入 #include 以进行调试,也可能会完全跳过它。

另请注意,#include'ing 是由编译器在标准描述的翻译的第一阶段使用文本预处理器完成的;#include-directive 告诉预处理器逐字复制并替换另一个文件的内容。这发生在生成实际目标文件之前很久

于 2012-04-13T12:59:10.767 回答
1

它是实现定义的,但通常当您使用调试选项(例如-g在 gcc 中)进行编译时,会包含文件路径以帮助您进行调试

于 2012-04-13T13:00:52.230 回答