您的位置:首页 > Web前端

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

2016-03-15 11:37 513 查看
做线程程序时,编译出现

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}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: