c - 为什么需要 -pthread 作为编译 pthread c 程序的参数
问题描述
为什么当我们pthread.h
在 ac 程序中使用库函数时,要编译它,我们必须写
gcc program.c -pthread
Why doesn't gcc program.c
works。虽然简单的原因可能是
当我们指定 -pthread 标记时它包含 pthread 库。但是当我们包含其他头文件时,我们不会传递
任何此类参数。是不是因为 pthread
external library
比 C 中可用的多?
解决方案
库中的函数,例如stdlib.h
和stdio.h
在 libc.so 中有实现,默认情况下链接到您的可执行文件(就像-lc
指定的一样)。
math.h
libc.so 中不包含和等库pthread.h
,因此必须单独链接。这可以通过分别传递-lm
和-lpthread
参数来完成。
gcc program.c
实际上会完美编译,但链接器找不到所需的函数定义,因此会抛出错误。
推荐阅读
- sql - 如何在 PL SQL 中以特定格式设置日期值?
- javascript - getStaticPaths 抛出“TypeError:segment.replace 不是函数”
- angular - Angular - 从承诺中获取价值
- tensorflow - 为什么在 GPU 中分配批量大小?
- mysql - 连接 4 个表 mySQL
- extjs - Bryntum 看板任务单击时出现空选择错误
- python - 尝试在用户登录系统时添加所有登录信息
- php - 出乎意料的结果,我在行 [2] 中始终获得 0。为什么?
- python - 我可以使用 Instagram API 获取其他用户的简历吗?
- javascript - 反应如何在状态更改时更改 div 名称