2013-12-18 42 views
0

多個文件,我有。我有一個make文件進行編譯生成文件多個cpp文件,但是當我做一切都是爲了給我無關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 [email protected] 

.cpp.o: 
    $(CC) $(CFLAGS) $(INCLUDE) $(MYDEFINE) -I ./libsrc/Backup/ ./$< -c -o ./[email protected] 

化妝的輸出所有的命令是make:無法完成所有'

回答

2

我看不到LIBCOMPBKUP的定義。

因此,all目標擴展爲:

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

make正確的結論沒有什麼做的。

all您的all目標應完全取決於$(LIBCOMPBKUP)(一旦您正確定義它),並且事情應該從那裏開始工作。

你需要這樣一行:

LIBCOMPBKUP = BackupLib.so 

或相似的,所以您的規則構建$(LIBCOMPBKUP)有一定的意義。

+0

但它的定義如下? – singh

+0

@singh:不,它不是。該規則的左側擴展爲空字符串,因爲未定義變量LIBCOMPBKUP。如果這個變量被定義並擴展到某個東西,那麼make就會有一個有用的規則。 –

+0

確定感謝很多..我知道了 – singh