我写了一个非常简单的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 ????发生了什么?为什么命令是如此混乱的顺序? 我搜索和研究但没有答案。请帮忙!
答案 0 :(得分:3)
您已经为.c
文件编写了一个模式规则,但是make正在查找.cpp
文件,因此它使用内置的编译C ++的规则对其进行编译。
您需要更改模式规则以使用%.cpp
而不是%.c
使用名为CFLAGS
(对于C)和CXXFLAGS
(对于C ++)而非CFLAG