2013-12-18 2 views
0

У меня есть несколько CPP файлы .i имеют сделать файл файл сборки для компиляции, но когда я делаю все это не дает мне никакого отношения к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] 

Выход замыкающих все ЦМД сделать: ничего не делать для `все '

ответ

2

Я не вижу определения LIBCOMPBKUP.

Итак, all цель расширяется:

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

и make справедливо заключает, что нет ничего сделать.

Ваша цель all должна быть основана только на $(LIBCOMPBKUP) (как только вы ее правильно определите), и оттуда должно начаться работа.

Вам нужна строка:

LIBCOMPBKUP = BackupLib.so 

или подобный, так что ваше правило строить $(LIBCOMPBKUP) имеет какое-то значение.

+0

но он определен ниже всех ?? – singh

+0

@singh: Нет, это не так. Левая часть этого правила расширяется до пустой строки, потому что переменная 'LIBCOMPBKUP' не определена. Если эта переменная была определена и расширена до чего-то, тогда 'make' будет иметь полезное правило там. –

+0

ОК спасибо большое .. я получил – singh

Смежные вопросы