关闭

codeblocks 多线程编程时出现:对pthread_create未定义的引用,解决方法

标签: 多线程linux
3200人阅读 评论(0) 收藏 举报
分类:

程序已经添加了#include<pthread.h>头文件,但编译却提示:

对‘pthread_create’未定义的引用

由于pthread库不是Linux系统默认的库,连接时需要使用库libpthread.a,所以在使用pthread_create创建线程时,在编译中要加-lpthread参数:
gcc   pthread.c 
-lpthread -o pthread


下面是codeblocks的修改:

设置>>编译器设置>>全局编译器设置>>链接器设置:

左侧链接库加入:   /usr/lib64/libpthread.a

右侧其他链接器选项加入: -lpthread

如果你的libpthread.a不在lib64下可以用如下命令查找:

$ locate libpthread.a



测试程序代码:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>

pthread_t tid;

void *thrd_func(void *arg)
{
	printf("New process: PID: %d, TID: %lu\n", getpid(), pthread_self());
	printf("New process: PID: %d, TID: %lu\n", getpid(), tid);

	pthread_exit(0);
}

int main()
{
	if (pthread_create(&tid, 0, thrd_func, 0)) {
		printf("Create thread error!\n");
		exit(1);
	}

	printf("TID in pthread_create function: %lu\n", tid);
	printf("Main process: PID: %d, TID: %lu\n", getpid(), pthread_self());

    sleep(1);
}

运行结果:


2
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

codeblocks 多线程编程时出现:对pthread_create未定义的引用,解决方法

程序已经添加了#include头文件,但编译却提示: 对‘pthread_create’未定义的引用 由于pthread库不是Linux系统默认的库,连接时需要使用库libpthread....
  • qq_20480611
  • qq_20480611
  • 2015-11-20 00:00
  • 3200

对‘pthread_create’未定义的引用 对‘pthread_join’未定义的引用

linux 下c语言编程 线程 POSIX线程库 编译时出现错误 对‘pthread_create’未定义的引用 对‘pthread_join’未定义的引用 ...
  • oMingZi12345678
  • oMingZi12345678
  • 2013-06-23 16:23
  • 11118

ubuntu gcc编译时对’xxxx’未定义的引用问题

http://www.cnblogs.com/oloroso/p/4688426.html gcc编译时对’xxxx’未定义的引用问题 原因解决办法 gcc 依赖顺序问题 ...
  • haluoluo211
  • haluoluo211
  • 2017-01-12 13:05
  • 1615

编译Linux程序出现“对‘pthread_create’未定义的引用”

在学习Linux程序设计POXIS线程的时候,编译一个段简单的代码,就出现下面的错误: 1 /tmp/cc2FQJTh.o:在函数‘main’中: 2 1-thread.c:(.text+0x29)...
  • Just_Finlay
  • Just_Finlay
  • 2013-08-06 17:10
  • 3459

多线程编程之pthread_create函数应用

多线程编程之pthread_create函数应用 pthread_create函数 函数简介 pthread_create是UNIX环境创建线程函数 头文件 ...
  • u013369907
  • u013369907
  • 2014-01-08 10:57
  • 396

多线程编程之pthread_create函数应用

pthread_create函数 函数简介 pthread_create是UNIX环境创建线程函数 头文件 #include 函数声明 int pthread_create(pthread...
  • Stone_OverLooking
  • Stone_OverLooking
  • 2017-11-25 13:41
  • 57

对‘pthread_create’未定义的引用

由于pthread库不是Linux系统默认的库,连接时需要使用库libpthread.a,所以在使用pthread_create创建线程时,在编译中要加-lpthread参数: gcc -o pth...
  • besfanfei
  • besfanfei
  • 2012-05-07 14:43
  • 17696

clone的fork与pthread_create创建线程有何不同&pthread多线程编程的学习小结

进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合,这些资源在Linux中被抽 象成各种数据对象:进程控制块、虚存空间、文件系统,文件I/O、信号处理函数。所以创建一个进程的 过程就...
  • rock_joker
  • rock_joker
  • 2017-05-25 09:32
  • 807

在OpenCV2.2后的版本中没有CvvImage类的解决方法(及出现错误:IntelliSense: 未定义标识符 "CvvImage" )

首先在你的解决方案资源管理器中的头文件和源文件下分别添加 CvvImage.h 和 CvvImage.cpp 如下图: 然后把下面源代码分别拷进去后 在你的view类头上加个#include...
  • JefferyLv
  • JefferyLv
  • 2015-04-15 10:53
  • 4507

Pthread多线程编程指南

  • 2009-02-05 13:29
  • 1.29MB
  • 下载
    个人资料
    • 访问:525707次
    • 积分:10537
    • 等级:
    • 排名:第1843名
    • 原创:517篇
    • 转载:3篇
    • 译文:0篇
    • 评论:45条