【发布时间】:2019-05-05 03:07:49
【问题描述】:
我在当前目录下有add.c sub.c,通过makefile编译。
我执行以下操作:
程序 1:
objs=$(patsubst %.cpp, %.o, $(wildcard *.cpp))
$(objs):%.o:%.cpp
g++ -o $@ -c $
程序 2:
objs=$(patsubst %.cpp, %.o, $(wildcard *.cpp))
$(objs):$(objs:.o = .cpp)
g++ -o $@ -c $
程序1成功编译。但程序 2 得到以下命令:
g++ -o sub.o -c sub.cpp
g++ -o add.o -c sub.cpp
那么这两个程序有什么区别呢?
【问题讨论】:
-
第二次编译
sub.cpp覆盖add.o是故意的还是一个错字? -
读取GNU make: Multiple Targets。尤其是第一句和最后一句。
-
@ matt。该文件非常有用!非常感谢。
标签: c++ makefile compilation