makefile,多个文件无法正常工作

时间:2013-12-18 08:11:15

标签: c++ linux makefile

我有多个cpp文件.i有一个make文件是一个makefile用于编译,但是当我完成所有它时我无事可做

CC=g++
PWD=`pwd`
ARCH=$(shell uname -s)
CFLAGS=-Wall -g -fPIC

LIBSOURCES=./libsrc/Backup/BackupLib.cpp \
./libsrc/Backup/BackupBase.cpp \
./libsrc/Backup/TransferManager.cpp

LIBOBJECTS:=$(LIBSOURCES:.cpp=.o) 

INCLUDE= -I /usr/include/libxml2/ -I ./System/ -I ./SubSystem/Queue/ -I ./System/Threads/ -I ./ -I 

./SubSystem/DB/ -I ./Controller/ -I ./SubSystem/Watcher/

MYDEFINE=-D__LINUX__ -D__cplusplus -D__CLEARCACHE__ 

LIBFLAG=-shared -Wl

LDFLAGS=-ldl -lpthread -lsqlite3 -lcrypto -lssl -lxml2 -L ./lib/ -lBackupLib 

LDLIBFLAGS=-ldl -lpthread -lsqlite3 -lcrypto -lssl -lxml2  

all:    $(LIBSOURCES) $(LIBCOMPBKUP)    

$(LIBCOMPBKUP): $(LIBOBJECTS)
    $(CC) $(CFLAGS) $(LIBOBJECTS) $(INCLUDE) $(MYDEFINE) -I ./libsrc/Backup/ -o $@

.cpp.o:
    $(CC) $(CFLAGS) $(INCLUDE) $(MYDEFINE) -I ./libsrc/Backup/ ./$< -c -o ./$@

make all cmd的输出为 make:“all”无法完成

1 个答案:

答案 0 :(得分:2)

我看不到LIBCOMPBKUP的定义。

因此,all目标扩展为:

all:  ./libsrc/Backup/BackupLib.cpp ./libsrc/Backup/BackupBase.cpp ./libsrc/Backup/TransferManager.cpp

make正确地断定无事可做。

您的all目标应完全取决于$(LIBCOMPBKUP)(一旦您正确定义它),事情就应该从那里开始。

您需要一行:

LIBCOMPBKUP = BackupLib.so

或类似内容,以便您构建$(LIBCOMPBKUP)的规则具有一定意义。