Makefile工作真的很奇怪

时间:2014-08-08 11:34:45

标签: makefile

我写了一个非常简单的Makefile:

CXX = g++
CFLAG = -g -I../include
XNNLIB = ../src/cpuxnn.a
PROGS = testcpu

all: $(PROGS)

%: %.c $(XNNLIB)
(this is a tab here)$(CXX) $(CFLAG) -o $@ $^

和“make”像这样开始g ++:

  

g ++ testcpu.cpp -o testcpu

CFLAG var ????发生了什么?为什么命令是如此混乱的顺序? 我搜索和研究但没有答案。请帮忙!

1 个答案:

答案 0 :(得分:3)

您已经为.c文件编写了一个模式规则,但是make正在查找.cpp文件,因此它使用内置的编译C ++的规则对其进行编译。

您需要更改模式规则以使用%.cpp而不是%.c

使用名为CFLAGS(对于C)和CXXFLAGS(对于C ++)而非CFLAG

的变量是常规的