Makefile既不生成目标文件也不生成二进制文件

时间:2014-04-03 15:01:16

标签: makefile solaris

我尝试了以下make脚本,但它既没有创建任何目标文件,也没有创建任何二进制文件,我做错了什么?

SRC=src
INC=inc
OBJ=obj
BIN=bin

INCS=-I$(INC)
FLAGS=-g -Wall

CC=/usr/sfw/bin/gcc

SRCS=$(wildcard $(SRC)/*.cpp)
OBJS=$(SRCS:$(SRC)/%.cpp=$(OBJ)/%.o)

$(BIN)/out.exe: $(OBJS)
   $(CC) $(INCS) $(LIBS) $(FLAGS) $(OBJS) -o $(BIN)/out.exe

$(OBJS) : $(SRCS)
   $(CC) $(INCS) $(LIBS) $(FLAGS) -c $<

clean:
   rm -f obj/*.o bin/ussd

下面我给出了我的系统中可用的制作工具列表及其版本

/bin - dmake - Sun Distributed Make 7.7
/usr/bin - dmake - Sun Distributed Make 7.7
/usr/ccs/bin - make - Unknow version
/usr/sfw/bin - gmake - GNU Make 3.80
/usr/xpg4/bin - Unknow version
/usr/local/bin - make - GNU Make version 3.79.1

1 个答案:

答案 0 :(得分:1)

我认为你对目标文件的make目标有问题。

目前我无法访问Solaris计算机,但这可以在我的Linux计算机上运行。

SRC=src
INC=inc
OBJ=obj
BIN=bin

INCS=-I$(INC)
FLAGS=-g -Wall

CC=/usr/sfw/bin/gcc

SRCS=$(wildcard $(SRC)/*.cpp)
OBJS=$(SRCS:$(SRC)/%.cpp=$(OBJ)/%.o)

$(BIN)/out.exe: $(OBJS)
    $(CC) $(INCS) $(LIBS) $(FLAGS) $(OBJS) -o $(BIN)/out.exe

$(OBJ)/%.o: $(SRC)/%.cpp
    $(CC) $(INCS) $(LIBS) $(FLAGS) -c $< -o $@

clean:
    rm -f obj/*.o bin/ussd