为什么需要“-lpthread”?

2023-11-25

所以我的问题是:为什么在编译命令末尾需要“-lpthread”?

为什么这个命令有效:

gcc -o name name.c -lpthread

但这不会:

gcc -o name name.c

我在我的 C 代码中使用 pthread.h 库。
我已经在网上寻找一些答案,但没有真正找到任何可以理解的答案


pthread.h不是图书馆它只是一个头文件它为您提供了将用于多线程的函数的声明(而不是函数的实际主体)。

using -libpthread or -lpthread编译时实际上链接了GCC库pthread用你的代码。因此编译器标志,-libLIBRARY_NAME or -lLIBRARY_NAME是必不可少的。

如果您不包含标志-l or -lib with LIBRARY_NAME您将无法使用外部库。

在这种情况下,假设您正在使用函数pthread_create and pthread_join,所以你会收到一条错误消息:

undefined reference to `pthread_create'

undefined reference to `pthread_join'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么需要“-lpthread”? 的相关文章

随机推荐

  • Pandas 在第 0 个位置插入空行

    假设有以下数据框 A B 1 2 3 4 5 4 5 6 7 8 我想检查一下是否df 0 0 is nan然后在第 0 个位置插入 pd series np nan 所以在上面的情况下将会是 A B 1 2 3 4 5 4 5 6 7 8
  • 什么是 void `std::allocator`?即:`std::allocator`

    自动生成ROS 机器人操作系统 message C 头文件包含如下类型定义 typedef std msgs Header
  • 从“AutoCompleteTextView”获取当前建议

    如何获得当前最热门的建议AutoCompleteTextView 我有它建议的项目 并且我注册了一个文本更改侦听器 我在同一屏幕上还有一个列表 当他们打字时 我想将列表滚动到当前的 最佳 建议 但我不知道如何访问当前的建议 或者至少是最重要
  • 在 vim 上将项目设置为更高的突出显示优先级

    我想按照讨论显示非 ASCII 字符here 但是当注释中包含非 ASCII 字符时 语法突出显示会消失 调查了一下这个问题 我在 vim 手册中发现较早启动的项目具有更高的优先级 第三项 从help syn priority 当多个语法项
  • 如何以 clang 格式对齐函数参数名称?

    是否可以使用clang format将结构成员和函数参数名称格式化为列 例如 struct int alpha aligned to b of beta unsigned int beta MyObject gamma aligned wi
  • 重写标准 Spring MVC 异常的处理行为

    Spring Boot 似乎有处理某些异常的默认行为 我有一个休息控制器 如果我不处理HttpRequestMethodNotSupportedException in the ControllerAdvice带注释的休息控制器 应用程序返
  • SELECT DISTINCT 值并 INSERT INTO 表

    我想获取一个包含重复多次的值的列 并仅获取该值一次并将其存储以供以后使用 但同时我想在与该不同列相同的行中获取另一个值 A B C 32263 123456 44 32263 123456 45 32263 123456 46 32264
  • C# 导入 C++ dll

    我有一个托管 dll 文件 它将函数从 C dll 导入到托管环境 我在程序中使用了它的一些函数 但问题是 当我使用它时出现此错误 无法加载 DLL Libraries lib dll 找不到指定的模块 HRESULT 异常 0x80070
  • Javascript Fetch API:标头参数不起作用

    这是我的示例请求 var header new Headers Platform Version 1 App Version 1 Platform FrontEnd var myInit method GET headers header
  • 如何在同一个图上绘制箱形图和特定点?

    我们可以绘制如下箱线图 qplot factor cyl mpg data mtcars geom boxplot 并点为 qplot factor cyl mpg data mtcars geom point 你会如何结合两者 但只是为了
  • 将多行合并为一行多列数据 R

    我有一个数据集 其中以不同方式测量相同的效果 我想比较这些测量结果 我的数据集如下所示 Study MType ID Insect Mean Sd N Alla Fecundity 1 Aphid 62 7628 11 Alla RGR 1
  • java中的字符串池

    Java有字符串池 因此字符串类的对象是不可变的 但我的问题是 创建 String POOL 的必要性是什么 为什么字符串类不像其他类那样保留它自己的值 JVM 内部是否需要一些字符串 或者这是性能优势 如果是的话怎么办 池是可能的 因为字
  • 通过“灾难恢复”在内存和存储受限的系统上加密和/或解密大文件 (AES)

    我有一个相当笼统的问题 所以如果有点模糊 请原谅 因此 我们假设有一个 1GB 的文件 需要在给定系统上加密并随后解密 问题是系统的可用内存少于 512 MB 存储空间大约为 1 5 GB 给定或需要 因此 对于 板载 文件 我们有大约 5
  • 更改 Oracle 11g XE 上的 NLS 字符集参数

    我使用的是 Oracle 11g Express 版 目前 当我使用以下命令检查 NLS 字符集参数时SELECT FROM nls database parameters 它给出了默认值 NLS CHARACTERSET AL32UTF8
  • 如何在 ASP.NET Core 中使用支持依赖注入的自定义模型绑定器?

    我正在尝试在 MVC 中使用自定义模型绑定器 我想从 IoC 容器中解析它 我遇到的问题是 在添加 MVC 服务时无法访问我的容器 因为我的容器尚未构建 并且我需要在构建容器之前添加 MVC 感觉就像是先有鸡还是先有蛋的问题 我确信我缺少一
  • 如何安装 Microsoft.SqlServer.Management.SqlParser?

    当我在新机器上重建它时 我的 c 安装程序项目出现了很多警告 类似的警告是 他们正在寻找 11 0 0 0 版本的 dll 而该 dll 只存在 10 0 0 0 版本 我发现这是由于安装的 SQL Server 版本 SQL Server
  • 如何允许匿名上传到云存储

    我需要我的用户将文件上传到我的 Google Cloud Storage 而无需通过 Google 进行身份验证 这些用户主要是运行我的应用程序的 Windows 台式机 笔记本电脑用户 在阅读了不同的身份验证机制后 我发现可断点续传可能就
  • OSX 10.9.2 上的 Java 1.7 作为 1.5 运行?

    为这件事揪着我的头发 java version and javac version两者都报告相同的 1 7 0 45 但是当我尝试编译最简单的类时 我收到一个类文件错误 gt cat A java public class A gt jav
  • 带有语句主体的 lambda 表达式无法转换为 nopCommerce 中的表达式树 [重复]

    这个问题在这里已经有答案了 我尝试在 nopCommerce 3 0 中创建 linq 联接查询 我在 linq 中加入两个表并写入 代码成功 但视觉工作室智能感知显示错误 例如 带有语句体的 lambda 表达式无法转换为表达式树 请看下
  • 为什么需要“-lpthread”?

    所以我的问题是 为什么在编译命令末尾需要 lpthread 为什么这个命令有效 gcc o name name c lpthread 但这不会 gcc o name name c 我在我的 C 代码中使用 pthread h 库 我已经在网