0
Я следующий Makefile:-L и -l команды не работают в Makefile
TOP = ../Bank/src
CC = gcc
CFLAGS = -g -Wall -std=c99
LDFLAGS = -L$(TOP)
LFLAGS = -lVirtualBank
INCLUDES = -I$(TOP)/VirtualBank/
LIBS = VirtualBank.a
BANK_SOURCES = $(TOP)/bank.c
VirtualBank_SOURCES = $(TOP)/VirtualBank/bankServer.c $(TOP)/VirtualBank/dataBase.c $(TOP)/VirtualBank/account.c
BANK_OBJECTS = $(BANK_SOURCES:.c=.o)
VirtualBank_OBJECTS = $(VirtualBank_SOURCES:.c=.o)
TARGET = bank
all: VirtualBank.a $(TARGET)
VirtualBank.a:$(VirtualBank_OBJECTS)
rm -f [email protected]
ar cq [email protected] $(VirtualBank_OBJECTS)
mv *.a $(TOP)/
$(VirtualBank_OBJECTS):$(VirtualBank_SOURCES)
$(CC) -c $(CFLAGS) $(INCLUDES) $(VirtualBank_SOURCES)
mv *.o $(TOP)/VirtualBank/
$(TARGET):$(BANK_OBJECTS)
$(CC) $(CFLAGS) $(INCLUDES) $(BANK_OBJECTS) -o $(TARGET) $(LDFLAGS) $(LFLAGS)
chmod +x $(TARGET)
$(BANK_OBJECTS):$(BANK_SOURCES)
$(CC) $(CFLAGS) -c $(INCLUDES) $(BANK_SOURCES)
mv *.o $(TOP)/
clean:
cd ../Bank
rm -rf *.o bank
cd $(TOP)
rm -rf *.o *.a
cd $(TOP)/VirtualBank
rm -rf *.o
Именно из этого проекта: https://github.com/MihaiPro/Bank Когда я бегу make
команду, commpiler не находит библиотеку VirtualBank. Я думаю, что проблема в команде -l, я снова прочитал об этой команде, но я не нахожу, что является проблемой.
Вы можете мне помочь?
Спасибо!
EDIT
Сообщение об ошибке:
gcc -g -Wall -std=c99 -I../Bank/src/VirtualBank/ ../Bank/src/bank.o -o bank -L../Bank/src -lVirtualBank
/usr/bin/ld: cannot find -lVirtualBank
collect2: error: ld returned 1 exit status
make: *** [bank] Error 1
У вас есть * библиотека VirtualBank? Где? –
Какова командная строка непосредственно перед сообщением об ошибке? –
Создается при запуске makefile. Добавлена последняя команда перед ошибкой. –