开发者

make: -c: Command not found

First of all, I'm trying to get used to makefiles but yet I#m new with this. The following file is supposed to, fi开发者_运维问答rst, compile all ./src/*.cpp files to ./src/*.o (where the filename survives) and afterwards complete compilation with simulation.cpp and linking the whole stuff together. Now, make returns the error message:

make: -c: Command not found

I have literally no clue how to proceed! Would the wildcard-construct even work in the way desired? Thanks a lot for your effort!

#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


You're tricking make with your SHELL variable, it sees is at empty as it is just a comment.

Change

SHELL := #!/bin/bash

to

SHELL := /bin/bash


This line:

SHELL := #!/bin/bash

is incorrect.

Your makefile should work perfectly well if you leave that line out altogether. If you do need something there, try

SHELL := /bin/bash
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜