我有一个makefile,它为两个类(和main)创建目标文件,其中一个类只是在.h文件中定义。在我的makefile中,我有一行说
FileName.o: FileName.h
g++ -c FileName.h
但是当我尝试编译它时说它找不到FileName.o
我是否必须创建FileName.cpp才能进行编译?
答案 0 :(得分:6)
您通常不会尝试自行编译标头(.h)文件。将它包含在一个空的.cpp文件中会让你编译它并产生一个.o文件,但它可能不会做太多(如果有的话)真正的好,除非你把东西放在不真正属于的标题中在标题中。
答案 1 :(得分:6)
你正在某处使用FileName.h中的类,不是吗?因此,至少有一个.cpp文件应包含#include "FileName.h"
,而.h的代码将使用此.cpp编译,您无需单独编译.h的代码。