Как я могу добавить статическую библиотеку и pthread в Makefile?

#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. Вот как это сработало? Хорошо, я, должно быть, вспоминал этот неправильный, обновляющий ответ через минуту 🙂