正如标题所问,对象文件是否必须与头文件具有相同的名称才能正确链接?
即。我可以有一个头文件"foo.h"并称之为"bar.o",然后仍然正确链接它吗?
在源代码中,我仍然需要编写include "foo.h"
,所以我推测链接器会拒绝它,因为两者的名称不相同。
没有任何内容表明特定的头文件与特定的对象文件相关联。
头文件通常只包含声明。它没有说明任何关于关联定义所在位置的内容。你可以有两个源文件,比如main.c和foo.c,并且都使用一个名为common.h的头文件。当你编译时,你可以创建main.o和foo.o,并将它们链接到"myprogram";。