是目标文件(.o)中包含的.c文件中的头文件路径引用

时间:2012-04-13 12:57:24

标签: c compiler-construction linker object-files

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

#include "parse/properties/properties.h"

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

相关问题