5

我有一个为两个类(和主类)创建目标文件的生成文件,其中一个类只是在 .h 文件中定义。在我的makefile中,我有一行说

FileName.o: FileName.h
  g++ -c FileName.h

但是当我尝试编译它说它找不到 FileName.o

我是否必须创建 FileName.cpp 才能编译它?

4

2 回答 2

7

您正在某个地方使用 FileName.h 中的类,不是吗?因此,您的 .cpp 文件中至少应包含#include "FileName.h".h 的代码,并且 .h 的代码将使用此 .cpp 进行编译,您无需单独编译 .h 的代码。

于 2012-04-11T19:58:34.227 回答
6

您通常不会尝试自行编译头文件 (.h)。将它包含到一个空的 .cpp 文件中可以让你编译它并生成一个 .o 文件,但它可能不会做太多(如果有的话)真正的好处,除非你把东西放在不真正属于的标题中在标题中。

于 2012-04-11T19:48:15.520 回答