- 论坛徽章:
- 0
|
原来的makefile文件是这样的:
ROOT = .
TARGET = test
ACTION_SRC_PATH = $(ROOT)/action/src
ACTION_OBJ_PATH = $(ROOT)/action/obj
ACTION_INC_PATH = $(ROOT)/action/include
LOG_SRC_PATH = $(ROOT)/log/src
LOG_OBJ_PATH = $(ROOT)/log/obj
LOG_INC_PATH = $(ROOT)/log/include
MANAGE_SRC_PATH = $(ROOT)/manager/src
MANAGE_OBJ_PATH = $(ROOT)/manager/obj
MANAGE_INC_PATH = $(ROOT)/manager/include
DB_SRC_PATH = $(ROOT)/db/src
DB_OBJ_PATH = $(ROOT)/db/obj
DB_INC_PATH = $(ROOT)/db/include
LIB_PATH = $(ROOT)/lib
BIN = $(ROOT)
#############################################################
# The following defines the used commands.
COMPILE = gcc -c
LINK = gcc
AR = ar
#CFLAGS = -Wall -D__DAEMON__
CFLAGS = -Wall -g
IFLAGS =
-I$(LOG_INC_PATH)
-I$(DB_INC_PATH)
-I$(MANAGE_INC_PATH)
-I$(ACTION_INC_PATH)
LFLAGS = -L$(LIB_PATH) -l_csgp -L/usr/lib/mysql -lmysqlclient -lpthread
#############################################################
# The following shows the modules.
ACTION_OBJ =
$(ACTION_OBJ_PATH)/actionCortrol.o
$(ACTION_OBJ_PATH)/changeInfo.o
$(ACTION_OBJ_PATH)/hortation.o
$(ACTION_OBJ_PATH)/integral.o
$(ACTION_OBJ_PATH)/isUserLogin.o
$(ACTION_OBJ_PATH)/query_gift.o
$(ACTION_OBJ_PATH)/query_point.o
$(ACTION_OBJ_PATH)/query_userId.o
$(ACTION_OBJ_PATH)/userLogin.o
$(ACTION_OBJ_PATH)/addUserIntegral.o
$(ACTION_OBJ_PATH)/isAnswerTrue.o
$(ACTION_OBJ_PATH)/query_level.o
ACTION_INC =
$(ACTION_INC_PATH)/action.h
LOG_OBJ =
$(LOG_OBJ_PATH)/log_device.o
LOG_INC =
$(LOG_INC_PATH)/log_device.h
MANAGE_OBJ =
$(MANAGE_OBJ_PATH)/manager.o
MANAGE_INC =
$(MANAGE_INC_PATH)/manager.h
$(MANAGE_INC_PATH)/csgpapi.h
DB_OBJ =
$(DB_OBJ_PATH)/db_init.o
$(DB_OBJ_PATH)/db_connect.o
$(DB_OBJ_PATH)/db_execute.o
$(DB_OBJ_PATH)/db_fetch.o
$(DB_OBJ_PATH)/db_encode.o
$(DB_OBJ_PATH)/db_error.o
DB_INC =
$(DB_INC_PATH)/db_device.h
INC =
$(LOG_INC) $(MANAGE_INC) $(DB_INC)
#############################################################
# The following defines rules.
$(BIN)/$(TARGET): $(ACTION_OBJ) $(LOG_OBJ) $(DB_OBJ) $(MANAGE_OBJ)
$(LINK) $(LOG_OBJ) $(DB_OBJ) $(ACTION_OBJ) $(MANAGE_OBJ) -o $@ $(LFLAGS) $(IFLAGS) $(CFLAGS)
$(DB_OBJ_PATH)/%.o: $(DB_SRC_PATH)/%.c $(DB_INC)
$(COMPILE) $(CFLAGS) $(IFLAGS) $< -o $@
$(LOG_OBJ_PATH)/%.o: $(LOG_SRC_PATH)/%.c $(LOG_INC)
$(COMPILE) $(CFLAGS) $(IFLAGS) $< -o $@
$(ACTION_OBJ_PATH)/%.o: $(ACTION_SRC_PATH)/%.c $(ACTION_INC)
$(COMPILE) $(CFLAGS) $(IFLAGS) $< -o $@
$(MANAGE_OBJ_PATH)/%.o: $(MANAGE_SRC_PATH)/%.c $(MANAGE_INC)
$(COMPILE) $(CFLAGS) $(IFLAGS)
之后我在action/include/action.h 里加了个新的函数,然后把c文件放到action/src/callrecord.c里了,然后我修改makefile得ACTION_OBJ =
$(ACTION_OBJ_PATH)/actionCortrol.o
$(ACTION_OBJ_PATH)/changeInfo.o
$(ACTION_OBJ_PATH)/hortation.o
$(ACTION_OBJ_PATH)/integral.o
$(ACTION_OBJ_PATH)/isUserLogin.o
$(ACTION_OBJ_PATH)/query_gift.o
$(ACTION_OBJ_PATH)/query_point.o
$(ACTION_OBJ_PATH)/query_userId.o
$(ACTION_OBJ_PATH)/userLogin.o
$(ACTION_OBJ_PATH)/addUserIntegral.o
$(ACTION_OBJ_PATH)/isAnswerTrue.o
$(ACTION_OBJ_PATH)/query_level.o
$(ACTION_OBJ_PATH)/callrecord.o
然后我在make 的时候提示我:make: *** No rule to make target `ACTION_OBJ_PATH>/callrecord.o', needed by `test'. Stop.
我不知道该怎么改才能把新加的c程序放到这个makefile里。大家帮帮忙。 |
|