2013-11-20 2 views
0

Я довольно новичок в Makefiles на C. Я пытаюсь выяснить, где бы я поместил -lpthread в свой файл makefile, чтобы я мог реализовать потоки posix в моей программе на C. Ниже мой Makefile, спасибо заранее.Местоположение -lpthread в C Makefile

CFLAGS = -g -Wall 
LDFLAGS = 
CC  = gcc 
LD  = gcc 

TARG1 = calc 
OBJS1 = calc.o 


$(TARG1): $(OBJS1) 
    $(LD) $(LDFLAGS) $(OBJS1) -o $(TARG1) 
clean: 
    rm -rf $(TARG1) $(OBJS1) 
+1

Обычно на линии ld, в конце. – Petesh

+0

Итак, строка ld будет $ (LD) $ (LDFLAGS) $ (OBJS1) -o $ (TARG1) -lpthread? – johns4ta

+1

Ответ Zan - лучшее решение и охватывает общий случай необходимости указывать флаг во время компиляции и компоновки. В общем, вы должны использовать переменные, где это возможно, в make-файлах, чтобы предотвратить повторение и потенциальную ошибку. – Petesh

ответ

3

Я бы порекомендовал не использовать -l. Вместо этого дайте GCC -pthread как для переменных CFLAGS, так и для LDFLAGS. Это обеспечит правильное определение препроцессора во время компиляции и свяжет правильные библиотеки.

Это предполагает, конечно, GCC. Если вы используете Intel icc или LLVM, проверьте правильные параметры.

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