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}
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}
相关文章推荐
- nodejs中npm工具自身升级
- SharePreference操作数据库
- JavaScript 闭包浅谈
- JSP生成验证码
- jQuery easyUI动态的课表
- 使用JS制作弹出框的几个小问题
- Nodejs v4.4.0API文档学习(2)Assert断言测试模块
- html/css 编码规范
- [转][译]关于CSS中的float和position和z-index
- 使用Gson解析json
- js实现图片预显示
- AngularJS 中的Promise --- $q服务详解
- json
- js中SetInterval与setTimeout用法
- bootstrap的tree控件
- 剑指offer-两个链表的第一个公共节点
- Js获取当前日期时间及其它操作
- #001 如何组织JS代码
- Js获取当前日期时间及其它操作
- JS 垃圾回收机制简介