pthreads compling的问题

时间:2014-02-27 06:49:12

标签: c linux makefile pthreads gnu

当我尝试使用Makefile进行编译时,似乎我遇到了pthread的问题:

/csapp.c:462: undefined reference to `pthread_create'

我认为它可能与-lpthread有关? 这是我的Makefile(是的,他们有一个标签):

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

OBJS = proxy.o csapp.o

all: proxy

proxy: $(OBJS)

csapp.o: csapp.c
    $(CC) $(CFLAGS) -c csapp.c

proxy.o: proxy.c
    $(CC) $(CFLAGS) -c proxy.c
clean:
    rm -f *~ *.o proxy 

1 个答案:

答案 0 :(得分:3)

我相信您的问题出在LDFLAGS

来自10.3 Variables Used by Implicit Rules

  

LDFLAGS当编译器应该调用链接器ld时,例如-L,给予编译器额外的标志。应将库(-lfoo)添加到LDLIBS变量中。

     

LDLIBS当应用程序调用链接器ld时,为编译器提供的库标记或名称。 LOADLIBESLDLIBS的已弃用(但仍受支持)的替代方案。非库链接器标志(例如-L)应该放在LDFLAGS变量中。

所以试试:

LDLIBS = -lpthread