#linux #makefile
#linux #makefile
Вопрос:
Все эти файлы в одной папке: AES.c, cryptlib.h и статическая библиотека libcl.a
Я хотел бы написать Makefile, который добавит pthread и статическую библиотеку, но я не знаю, где и как я должен это сделать.
Спасибо за вашу помощь
Ответ №1:
Вот отправная точка. Я бы ответил на ваши реальные вопросы, если вы расскажете нам, в чем вы застряли 🙂
all: myapp
LDFLAGS =libcl.a
LDFLAGS = -lpthread
myapp: AES.c libcl.a
$(CC) $^ $(LDFLAGS) -o $@
myapp: cryptlib.h
Я ненавижу зависимости жесткого кодирования для проектов C / C ; Если вы похожи на меня, вы можете рассмотреть что-то вроде (предполагая параметры стиля gcc …):
all: myapp
LDFLAGS =libcl.a
LDFLAGS = -lpthread
myapp: AES.o libcl.a
$(CC) $^ $(LDFLAGS) -o $@
.depend: *.c
$(CC) -M $< > $@
-include .depend
Комментарии:
1. Почему обязательные условия только для заказа? Конечно, если заголовок или библиотека обновлены, вы хотели бы, чтобы целевой объект также был обновлен.
2. Вот как это сработало? Хорошо, я, должно быть, вспоминал этот неправильный, обновляющий ответ через минуту 🙂