编译加了 -lpthread 还是有 undefined reference to `pthread_create'咋整???

w22net 2015-02-23 11:27:50
编译加了 -lpthread 还是有 undefined reference to `pthread_create'咋整???

book@ubuntu:/work/linuxStd/thread/9-2-1-1$ make
gcc -I. -D_REENTRANT -I/usr/include/nptl -L/usr/lib/nptl -lpthread -g -o thread thread.o
thread.o: In function `main':
/work/linuxStd/thread/9-2-1-1/thread.c:43: undefined reference to `pthread_create'
/work/linuxStd/thread/9-2-1-1/thread.c:55: undefined reference to `pthread_join'
collect2: ld returned 1 exit status
make: *** [thread] Error 1
...全文
2065 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
w22net 2015-02-25
  • 打赏
  • 举报
回复
引用 5 楼 baidu_24256693 的回复:
不知道-lpthread应该在编译生成.o文件的时候加,还是在.o文件生成可执行文件的时候加 你可以试试在生成.o文件的时候加上-lpthread
找到问题! 确实是应该在生成. o文件后加 把 -lpthread 移到${CC} ${CFLAGS} ${LDFLAGS} -o $@ ${OBJS} 就没问题了 点赞
fly 100% 2015-02-25
  • 打赏
  • 举报
回复
依赖 include pthread.h
  • 打赏
  • 举报
回复
引用 7 楼 w22net 的回复:
[quote=引用 5 楼 baidu_24256693 的回复:] 不知道-lpthread应该在编译生成.o文件的时候加,还是在.o文件生成可执行文件的时候加 你可以试试在生成.o文件的时候加上-lpthread
找到问题! 确实是应该在生成. o文件后加 把 -lpthread 移到${CC} ${CFLAGS} ${LDFLAGS} -o $@ ${OBJS} 就没问题了 点赞。[/quote] 很高兴能帮到你
  • 打赏
  • 举报
回复
不知道-lpthread应该在编译生成.o文件的时候加,还是在.o文件生成可执行文件的时候加 你可以试试在生成.o文件的时候加上-lpthread
w22net 2015-02-23
  • 打赏
  • 举报
回复
我的makefile EXEC = thread OBJS = thread.o HEADERS = CC = gcc INC = -I. CFLAGS = ${INC} -D_REENTRANT -I/usr/include/nptl -L/usr/lib/nptl -lpthread -g all:${EXEC} ${EXEC} : ${OBJS} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ ${OBJS} ${OBJS} : ${HEADERS} .PHONY : clean clean : -rm -f ${OBJS} ${EXEC}
  • 打赏
  • 举报
回复
引用 1 楼 baidu_24256693 的回复:
写了头文件没有#include<pthread.h>
把你的makefile贴出来看看,也许是makefile有问题
w22net 2015-02-23
  • 打赏
  • 举报
回复
有 #include <pthread.h> 啊
  • 打赏
  • 举报
回复
写了头文件没有#include<pthread.h>

23,223

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧