Makefile 一个标头生成文件的多个源文件
我有一个头文件Header1.h,其中包含在单独的.cpp中实现的多个函数,即Func1.cpp、Func2.cpp 因此,如果我只有一个头文件和一个cpp,我会写:Makefile 一个标头生成文件的多个源文件,makefile,Makefile,我有一个头文件Header1.h,其中包含在单独的.cpp中实现的多个函数,即Func1.cpp、Func2.cpp 因此,如果我只有一个头文件和一个cpp,我会写: Func1.o: Header1.h Func1.cpp gcc -c Func1.cpp Header1.h 但写作: Func1.o: Header1.h Func1.cpp gcc -c Func1.cpp Header1.h Func2.o: Header1.h Func2.cpp gcc -c
Func1.o: Header1.h Func1.cpp
gcc -c Func1.cpp Header1.h
但写作:
Func1.o: Header1.h Func1.cpp
gcc -c Func1.cpp Header1.h
Func2.o: Header1.h Func2.cpp
gcc -c Func2.cpp Header1.h
不起作用。您写道:
因此,如果我只有一个头文件和一个cpp,我会写:
Func1.o: Header1.h Func1.cpp
gcc -c Func1.cpp Header1.h
职能1.o:Header1.h职能1.cpp;gcc-c Func1.cpp Header1.h
不,你不会的。您从未将头文件放在编译行上:编译器将查找头文件,因为源文件中有#include
语句
你可以这样写:
all: Func1.o Func2.o
Func1.o: Header1.h Func1.cpp
gcc -c Func1.cpp
Func2.o: Header1.h Func2.cpp
gcc -c Func2.cpp
然而,这并不是一个好的makefile。首先,源文件有一个<代码> .CPP扩展,这意味着它们是C++文件,但是你使用的是CXX = g++
all: Func1.o Func2.o
Func1.o: Header1.h
Func2.o: Header1.h
这就是你所需要的。你写道:
因此,如果我只有一个头文件和一个cpp,我会写:
Func1.o: Header1.h Func1.cpp
gcc -c Func1.cpp Header1.h
职能1.o:Header1.h职能1.cpp;gcc-c Func1.cpp Header1.h
不,你不会的。您从未将头文件放在编译行上:编译器将查找头文件,因为源文件中有#include
语句
你可以这样写:
all: Func1.o Func2.o
Func1.o: Header1.h Func1.cpp
gcc -c Func1.cpp
Func2.o: Header1.h Func2.cpp
gcc -c Func2.cpp
然而,这并不是一个好的makefile。首先,源文件有一个<代码> .CPP扩展,这意味着它们是C++文件,但是你使用的是CXX = g++
all: Func1.o Func2.o
Func1.o: Header1.h
Func2.o: Header1.h
这就是你所需要的