[英]makefile for multiple files not working
I have multiple cpp files .i have a make file a makefile for compilation, but when i make all it gives me nothing to do 我有多个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 ./$@
The output of make all cmd is make: Nothing to be done for `all' make all cmd的输出是make:'all'没什么可做的
I see no definition of LIBCOMPBKUP
. 我看不到
LIBCOMPBKUP
定义。
So, the all
target expands to: 因此,
all
目标扩展到:
all: ./libsrc/Backup/BackupLib.cpp ./libsrc/Backup/BackupBase.cpp ./libsrc/Backup/TransferManager.cpp
and make
rightly concludes there's nothing to do. 并
make
正确的结论没有什么做的。
Your all
target should just depend solely on $(LIBCOMPBKUP)
(once you correctly define it), and things should start working from there. 你的
all
目标应该完全依赖于$(LIBCOMPBKUP)
(一旦你正确定义它),事情应该从那里开始工作。
You need a line like: 你需要一条线:
LIBCOMPBKUP = BackupLib.so
or similar so that your rule to build $(LIBCOMPBKUP)
has some meaning. 或类似的,以便你的规则建立
$(LIBCOMPBKUP)
有一些意义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.