我从网上下载了下面的演示https://computing.llnl.gov/tutorials/pthreads/
#包括<;pthread.h>;
#包括<;标准h>;
#定义NUM_线程5
void*PrintHello(void*threadid)
{
长tid;
tid=(长)线程ID;
printf(“你好,世界!是我,线程#%ld!\n”,tid);
pthread_exit(NULL);
}
int main(int argc,char*argv[])
{
pthread_t threads[NUM_threads];
int rc;
长t;
对于(t=0;t<;NUM_线程;t++){
printf(“主:创建线程%ld\n”,t);
rc=pthread_create(&;threads[t],NULL,PrintHello,(void*)t);
if(rc){
printf(“错误;pthread_create()返回的代码是%d\n”,rc);
出口(-1);
}
}
pthread_exit(NULL);
}
但是当我在我的机器上编译它(运行Ubuntu Linux 9.04)时,我得到以下错误:
[email protected]:~/demo$gcc-o term.c
术语c:在函数“main”中:
term.c:23:警告:内置函数“exit”的不兼容隐式声明
/tmp/cc8BMzwx.o:在函数“main”中:
term.c:(.text+0x82):对“pthread_create”的未定义引用
collect2:ld返回了1个退出状态
这对我来说没有任何意义,因为标题包括pthread.h,它应该具有pthread\u create函数。你知道怎么回事吗
对于Linux,正确的命令是:
gcc-pthread-o term.c
通常,库应该遵循命令行上的源和对象,并且-lpthread不是;选择权;,这是一个库规范。在仅安装了libpthread.a的系统上
gcc-lpthread。。。
将无法链接