求助,在静态库中使用pthread_create的问题,急急!!!!!!
我自己制作了一个静态库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’未定义的引用
------解决方案--------------------------解决方案--------------------g++ -g -o Get main.o -L../ForTest/ -lGet -lpthread
这样试试