求助,在静态库中使用pthread_create的问题,急急!!!!!!

NB_vol_1 2014-05-08 01:02:50
我自己制作了一个静态库libGet.a,静态库内部使用了pthread_create,编译能通过。然后在另外一个工程当中使用了这个静态库,编译的时候加了-lpthread选项,但是报错 “对‘pthread_create’未定义的引用”

下面是静态库的代码:
//get.h
#ifndef GET_H
#define GET_H
void Fun();
#endif // GET_H


//get.cpp
#include<stdio.h>
#include<pthread.h>
#include"get.h"
using namespace std;

//线程函数
void* Thread_Fun(void* p)
{
//简单的打印字符
printf("SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSs\n");
return 0;
}

//普通函数
void Fun()
{
//创建线程
pthread_t t;
pthread_create(&t,0,Thread_Fun,0);
printf("OK!");

int i;
scanf("%d",&i);
}

然后创建静态库

get.o:get.cpp
g++ -g -c get.cpp get.h -lpthread

ar crv libGet.a get.o












//下面是使用静态库那个工程的代码
//main.cpp

#include"../ForTest/get.h"
int main(int argc, char *argv[])
{
Fun();
return 0;
}
//编译
g++ -g -o Get main.o ../ForTest/libGet.a -lpthread

结果出错:
:在函数‘Fun()’中:../ForTest/get.cpp:17:对‘pthread_create’未定义的引用
...全文
228 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhxianbin 2014-05-08
  • 打赏
  • 举报
回复
g++ -g -o Get main.o -L../ForTest/ -lGet -lpthread 这样试试
NB_vol_1 2014-05-08
  • 打赏
  • 举报
回复
inurlcn 2014-05-08
  • 打赏
  • 举报
回复
NB_vol_1 2014-05-08
  • 打赏
  • 举报
回复
NB_vol_1 2014-05-08
  • 打赏
  • 举报
回复

23,120

社区成员

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

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