我尝试了以下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
答案 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