undefined reference to `pthread_create'错误通过makefie的解决方法

来源:互联网 发布:手机淘宝历史价格查询 编辑:程序博客网 时间:2024/06/05 10:52
做线程程序时,编译出现
undefined reference to `pthread_create'的错误。
可是makefile 里面明明已经加入了-lpthread的选项。不知道怎么回事,莫非是找不到库的路径,不
应该啊!线程库的路径是默认的啊,不行加入了pthread的库路径,还是不行网上找半天无果!
最后发现是makefile链接的时候 把 *.o 放在了-lpthread之后了。把 *.o 放在链接库的前边就对了。当然需要在文件中添加#include <pthread.h>

GCC = gcc
CFLAGS = -Wall
OBJECTS = threadpool.o threadpooltest.o

DEFS += -D_GNU_SOURCE

LIBS=-L/ -lpthread



APP_NAME = threadpooltest

.PHONY: all, clean

${APP_NAME}: ${OBJECTS}
    $(GCC) $(OBJECTS) $(CFLAGS) $(LIBS)  -o ${APP_NAME}  //把$(OBJECTS)放在$(LIBS)之前
    rm -rf *.o
%.o: %.c
    ${GCC} ${DEFS} ${CFLAGS}  -c -o $@ $< -g

all: ${APP_NAME}
clean:
    rm -rf *.o ${APP_NAME}
0 0
原创粉丝点击