undefined reference to `pthread_create' collect2: ld returned 1 exit status

Linux下编译多线程程序遇到错误:

undefined reference to `pthread_create‘
collect2: ld returned 1 exit status

原因是系统无法找到pthread_create函数。也就是说编译器在link得时候找不到其中的一个使用库的函数。

解决办法如下:

For Linux the correct command is:

gcc -pthread xxx.c

In general, libraries should follow sources and objects on command line, and -lpthread is not an "option", it‘s a library specification. On a system with only libpthread.a installed,

gcc -lpthread xxx.c//By this, ld will try to link libpthread.so

will fail to link.

undefined reference to `pthread_create' collect2: ld returned 1 exit status

时间: 2024-12-28 15:32:32

undefined reference to `pthread_create' collect2: ld returned 1 exit status的相关文章

编译ipvsadm-1.26 错误:collect2: ld returned 1 exit status

编译: ipvsadm-1.26 编译错误问题 [[email protected] ipvsadm-1.26]# make make -C libipvs make[1]: Entering directory `/root/ipvsadm-1.26/libipvs' gcc -Wall -Wunused -Wstrict-prototypes -g -fPIC -DLIBIPVS_USE_NL  -DHAVE_NET_IP_VS_H -c -o libipvs.o libipvs.c gcc

QT错误之——collect2:ld returned 1 exit status

pcDuino3下支持mmc启动,官方的Uboot是采用SPL框架实现的,因为内部的SRAM空间达到32K,我们完全可以在这32K空间内编写一个完整可用小巧的bootloader来完成引导Linux kernel的目的. 我们首先介绍下SPL框架,可以先看下<GNU ARM汇编--(十八)u-boot-采用nand_spl方式的启动方法>和<GNU ARM汇编--(十九)u-boot-nand-spl启动过程分析>,NAND_SPL也算是SPL框架下的一种模式. 当使用Nand f

Dev C++ Permission denied collect2: ld returned 1 exit status 编译错误

Dev-C++  version:5.3.0.3 编译错误:Permission denied collect2: ld returned 1 exit status 原      因:1.编译的时候按F9,默认在同目录下生成exe,会产生这种错的原因是,之前已经编译过一次,存在一个相同名称的exe.其实,你仔                 细观察一下,当按下F9提示编译错误(此时存在这个相同名称的exe)时,虽然不会编译成功生成心得exe,但是等几秒,它会删除 原来的存在同名exe.所以,如

/usr/bin/ld: cannot find -lltdl collect2: ld returned 1 exit status make: *** [sapi/cgi/php-cgi] Err

/usr/bin/ld: cannot find -lltdl collect2: ld returned 1 exit status make: *** [sapi/cgi/php-cgi] Error 1 解决的方法: yum install *ltdl*

Error:collect2:ld returned 1 exit status (总结)

1. 编译成功的例子在后台执行,有时一闪而过,如果再次build ,则会提示上述错误. 解决方法:打开任务管理器,找到相应的exe进程,关闭即可:  或者直接关闭IDE. 2.没有编译成功的情况下,最常见情况是程序本身需要include的头文件被遗漏了 解决方法:细心查找基类所用的头文件,include之后即可. 3..h文件中相关的函数在cpp文件中没有定义,或者说函数的声明(.h中)与定义(.cpp中)不一致 解决方法:查找遗漏的函数,根据需要,具体的定义.将函数名修改一致.

ld returned 1 exit status&quot;的解决办法

在Linux下创建线程时,编译时会出现下面的错误,[[email protected] 807]# gcc -o 22 22.c/tmp/cc21HcoW.o(.text+0x4c): In function `main':: undefined reference to `pthread_create'collect2: ld returned 1 exit status程序为: #include <unistd.h>#include <pthread.h>#include &l

error: ld returned 1 exit status 和 error:undefined reference

undefined reference 往往是链接时出现错误,无法解析引用.这篇文章总结的很好undefined reference问题总结 error: ld returned 1 exit status 链接文件没有建立 案例 1 #include<vector> 2 #include<algorithm> 3 #include<iostream> 4 #include<cstdio> 5 using namespace std; 6 class Sol

CentOS下编译CPP文件时报错[undefined reference to `__gxx_personality_v0&#39; collect2: ld]的解决办法

在CentOS环境下编译CPP时报出 undefined reference to `__gxx_personality_v0' collect2: ld 以上错误,调查了一下,加上参数[-lstdc++]就可解决 例: gcc -lstdc++ a.cpp 参考自http://mlq.blog78.fc2.com/?mode=m&no=14 CentOS下编译CPP文件时报错[undefined reference to `__gxx_personality_v0' collect2: ld]

error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status

Windows服务器Azure云编译安装MariaDB教程 www.111cn.net 编辑:future 来源:转载 安装MariaDB数据库最多用于linux系统中了,下文给各位介绍在Windows服务器Azure云编译安装MariaDB教程,希望本文能帮助到各位. 试用1元Windows Azure,带宽都是杠杠的.下面演示下Windows Azure下编译安装LNMP环境,系统环境是Ubuntu 14.04 TLS版 软件版本: 数据库:mariadb-10.0.13 Stable PH