У меня есть несколько файлов cpp. У меня есть файл make make для компиляции, но когда я делаю все это, мне нечего делать
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 выполняется : ничего не делать для 'all'
Я не вижу определения LIBCOMPBKUP
.
Таким образом, all
цели расширяются до:
all: ./libsrc/Backup/BackupLib.cpp ./libsrc/Backup/BackupBase.cpp ./libsrc/Backup/TransferManager.cpp
и make
правильно заключает там делать нечего.
Ваше all
цель должна только зависеть исключительно от $(LIBCOMPBKUP)
(как только вы правильно определить его), и вещи должны начать работать оттуда.
Вам нужна строка:
LIBCOMPBKUP = BackupLib.so
или подобное, так что ваше правило для создания $(LIBCOMPBKUP)
имеет некоторое значение.
LIBCOMPBKUP
не определена. Если бы эта переменная была определена и расширена до чего-то, то уmake
было бы полезное правило.