2015-10-31 40 views
1

我有一个makefile问题。我知道如何创建一个makefile了两个,而不是四个不同的文件,包括头文件...C++ Makefile 3个文件

有四个文件,main.cpp中Dictionary.h Dictionary.cpp和Cinco.h

Cincotest: main.o Cinco.o 
    g++ -o p3 main.o Cinco.o 

main.o: main.cpp Cinco.h 
    g++ -c main.cpp 

Dictionary.o: Dictionary.cpp Dictionary.h 
    g++ -c .cpp 


# clean up 
clean: 
    rm -f p4 *.o *~ 

我们是否需要其他文件代码,或者我们可以在这里获得帮助?

如果你知道答案,并可以输入新的代码,这将是完美的;)

+0

https://github.com/bronson/makefile-death呢? –

回答

1

它看起来对我来说,组织代码的一个相当标准的方式 - .cpp.h头文件去用它。

你有足够的规则。除非你main.cpp还包括#-S的Dictionary.h头文件,或者您也dictionary.cpp#包括-S的Cinco.h,在这种情况下:

main.o: main.cpp Cinco.h Dictionary.h 
    g++ -c main.cpp 

Dictionary.o: Dictionary.cpp Cinco.h Dictionary.h 
    g++ -c .cpp 

一个makefile仅仅是一个依赖列表。对于每个*.o文件,它的依赖关系是编译它所需的所有源文件。如果在main.cpp中#include Dictionary.h,那么更改为Dictionary.h意味着main.cpp需要重新编译,当然。因此,您的依赖规则将以相同的方式表示。

由于您使用的是g++,因此您还可以使用g++为您编写依赖关系规则。请尝试:

g++ -MM -MF main.deps main.cpp 

请参阅gcc的手册页以获取更多信息。