make:-c:找不到命令

首先,我试图习惯于制作文件,但是我对这个有了新的认识。 下面的文件应该首先将所有./src/*.cpp文件编译到./src/*.cpp文件(文件名可以存在),然后用simulation.cpp完成编译并将所有东西链接在一起。 现在,返回错误信息:

 make: -c: Command not found 

我几乎没有线索如何进行! 通配符构造是否会按照所需的方式工作? 非常感谢你的努力!

 #basic stuff TRUE = 1 FALSE = 0 SHELL := #!/bin/bash # path names SRCPATH = ./src/ CLEANPATH = ./res/ \ ./crash/ # source files. MAIN = simulation.cpp OBJS = $(wildcard $(SRCPATH)*.o) SRCS = $(wildcard $(SRCPATH)*.cpp) INCLUDES = $(wildcard $(SRCPATH)*.h) #GLOBAL MACROS PASSED TO PROGRAM! MODEL_MRT = $(TRUE) #if true model used is MRT else SRT PARALLEL = $(TRUE) GRAVITY = $(TRUE) # output file name OUT = simulation # C++ compiler flags (-g -O2 -Wall) CXXFLAGS = -g -Wall -O -fopenmp CXXDEFINES = -D MODEL=$(MODEL_MRT) -D PARALLEL=$(PARALLEL) -D GRAVITY=$(GRAVITY) # compiler CXX = g++ $(OUT) : $(OBJS) $(CXX) $(CXXFLAGS) $(MAIN) $(OBJS) $(CXXDEFINES) -o $(OUT) $(OBJS) : $(SRCS) $(INCLUDES) $(CXX) $(CXXFLAGS) -c $(SRCS) -o $(OBJS) clean : $(OUT) rm $(OBJS) rm $(CLEANPATH)/*.* run : $(OUT) clean ./$(OUT) .PHONY: clean run 

你欺骗你的SHELL变量,它看起来是空的,因为它只是一个评论。

更改

 SHELL := #!/bin/bash 

 SHELL := /bin/bash 

这一行:

 SHELL := #!/bin/bash 

是不正确的。

如果你完全离开这条线,你的makefile应该工作的很好。 如果你确实需要一些东西,试试

 SHELL := /bin/bash