g+的参数顺序+;解析makefile时已洗牌
以下生成文件:g+的参数顺序+;解析makefile时已洗牌,makefile,gnu-make,Makefile,Gnu Make,以下生成文件: #Regular c++ rules CXX=g++ CXXFLAGS=-Wall -march=native -ffast-math -O3 CXX_OBJECTS=AbsNode.o rle16.o rle8.o # Link command: test : $(CXX_OBJECTS) $(CXX) $(CXX_OBJECTS) -o test # Compilation commands: $.o : %.cpp $(CXX) -c $< $(
#Regular c++ rules
CXX=g++
CXXFLAGS=-Wall -march=native -ffast-math -O3
CXX_OBJECTS=AbsNode.o rle16.o rle8.o
# Link command:
test : $(CXX_OBJECTS)
$(CXX) $(CXX_OBJECTS) -o test
# Compilation commands:
$.o : %.cpp
$(CXX) -c $< $(CXXFLAGS) -o $@
当我期待的时候
g++ -c AbsNode.cpp -Wall -march=native -ffast-math -O3 -o AbsNode.o
g++ -c rle16.cpp -Wall -march=native -ffast-math -O3 -o rle16.o
g++ -c rle8.cpp -Wall -march=native -ffast-math -O3 -o rle8.o
为什么g++的参数顺序与makefile中规定的规则相比发生了切换
$.o : %.cpp
您键入了$,而不是%,这已变成非模板规则。但是make有一个C++文件的默认规则,它是取而代之的。参数的顺序与此内部规则匹配
$.o : %.cpp