文档章节

在Linux中对pthread_create的未定义引用

j
 javail
发布于 02/28 19:43
字数 427
阅读 143
收藏 0

我从https://computing.llnl.gov/tutorials/pthreads/在网络上获取了以下演示

#include <pthread.h>
#include <stdio.h>
#define NUM_THREADS     5

void *PrintHello(void *threadid)
{
   long tid;
   tid = (long)threadid;
   printf("Hello World! It's me, thread #%ld!\n", tid);
   pthread_exit(NULL);
}

int main (int argc, char *argv[])
{
   pthread_t threads[NUM_THREADS];
   int rc;
   long t;
   for(t=0; t<NUM_THREADS; t++){
      printf("In main: creating thread %ld\n", t);
      rc = pthread_create(&threads[t], NULL, PrintHello, (void *)t);
      if (rc){
         printf("ERROR; return code from pthread_create() is %d\n", rc);
         exit(-1);
      }
   }
   pthread_exit(NULL);
}

但是,当我在运行Ubuntu Linux 9.04的计算机上对其进行编译时,出现以下错误:

corey@ubuntu:~/demo$ gcc -o term term.c
term.c: In function ‘main’:
term.c:23: warning: incompatible implicit declaration of built-in function ‘exit’
/tmp/cc8BMzwx.o: In function `main':
term.c:(.text+0x82): undefined reference to `pthread_create'
collect2: ld returned 1 exit status

这对我来说没有任何意义,因为标头包含pthread.h ,应具有pthread_create函数。 任何想法出什么事了吗?


#1楼

您只需要在proprieties => C / C ++ build => GCC C ++ Linker => Libraries =>顶部“ Libraries(-l)”中添加“ pthread”。 而已


#2楼

日食

属性-> c / c ++ Build->设置-> GCC C ++链接器->顶部的库中添加“ pthread”


#3楼

在Anjuta中,转到“生成”菜单,然后“配置项目”。 在“配置选项”框中,添加:

LDFLAGS='-lpthread'

希望它也能帮助别人...


#4楼

到目前为止,这个问题的两个答案都是错误的
对于Linux,正确的命令是:

gcc -pthread -o term term.c

通常,库应该在命令行中跟随源和对象,并且-lpthread不是“选项”,它是库规范。 在仅安装libpthread.a系统上,

gcc -lpthread ...

将无法链接。


#5楼

有时,如果您使用多个库,请检查库依赖性。 (例如,-lpthread -lSDL ... <==> ... -lSDL -lpthread)

本文转载自:https://fi.sofbug.com/question/6yb7

j
粉丝 7
博文 1547
码字总数 0
作品 0
深圳
私信 提问
FW: gcc编译时对'xxxx'未定义的引用问题

gcc编译时对'xxxx'未定义的引用问题 发布时间:2015-12-23 15:54:05来源:linux网站作者:乌合之众 在使用gcc编译的时候有时候会碰到这样的问题,编译为.o(obj) 文件没有问题,但是编译(这一步应...

SamXIAO
2019/02/09
535
0
多线程编程-线程的创建和终止

1.引言: Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时 需要使用库libpthread.a。顺便说一下,Linux下pthread的实现是通...

IBMdW
2011/09/22
487
0
Linux多线程编程实例解析 【转】

Linux系统下的多线程遵循POSIX线程接口,称为 pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。顺便说一下,Linux 下pthread的实现是通过系统调...

huang19830104
2018/06/28
0
0
《Go语言编程》[4.4 并发通信]代码thread.c和thread.go错误

thread.c程序pthread_create函数第三个参数为线程函数的起始地址,文中并无add函数,源代码如下: thread.c编译时会报未声明错误: 根据语境推测应该是count,替换如下: 重新编译,gcc编译时...

技术小胖子
2017/11/08
0
0
[原创]手把手教你Linux下的多线程设计--Linux下多线程编程详解(一)

本文可任意转载,但必须注明作者和出处。 【原创】手把手教你Linux下的多线程设计(一) --Linux下多线程编程详解 原创作者:Frozen_socker(冰棍) E_mail:dlskyfly@163.com 线程也被称为轻权...

gaoshouma
2007/07/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

植物:君子兰

ylbtech-植物:君子兰 君子兰(学名: Clivia miniata),别名 剑叶石蒜、大叶石蒜,是 石蒜科 君子兰属的 多年生草本植物,属观赏 花卉,原产于 南非南部。 花期长达30-50天,以冬春为主,元...

osc_gp8avabl
4分钟前
17
0
植物:玉簪

ylbtech-植物:玉簪 玉簪(学名: Hosta plantaginea (Lam.) Aschers.),又名 白萼、白鹤仙,是 百合科,玉簪属的 多年生宿根植物。叶基生,成簇,卵状心形、卵形或卵圆形。 花葶高40-80...

osc_1psr53ow
5分钟前
10
0
植物:迎春花

ylbtech-植物:迎春花 迎春花(学名: Jasminum nudiflorum Lindl. ):别名 迎春、黄素馨、金腰带,落叶 灌木丛生。株高30-500厘米。小枝细长直立或拱形下垂,呈纷披状。3小叶复叶交互对生,...

osc_fscujk71
6分钟前
18
0
植物:雪铁芋

ylbtech-植物:雪铁芋 雪铁芋(学名: Zamioculcas zamiifolia Engl.),又名为 金钱树。是多年生常绿 草本植物,是极为少见的带地下 块茎的观叶植物。地上部无主茎,不定芽从块茎萌发形成大...

osc_47qtuhkb
7分钟前
11
0
Java之关键字的使用

java中有很多的关键字,他们的使用让Java语言变得更加灵活、易用,下面将介绍Java中最常用的几个关键字并说明其用法。 关键字:return 1.使用范围: 使用在方法体中 2.作用: ① 结束方法 ②...

RealBruce
8分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部