当前位置: 首页 > 面试题库 >

-pthread标志在编译时的意义

暨曾笑
2023-03-14
问题内容

在各种多线程C和C
++项目中,我已经看到该-pthread标志同时应用于编译和链接阶段,而其他人则根本不使用它,而只是-lpthread转到链接阶段。

有没有编译和链接-pthread标志的危险,即-pthread实际上是做什么的?我主要对Linux平台感兴趣。


问题答案:

尝试:

gcc -dumpspecs | grep pthread

并查找以%{pthread:。开头的任何内容。

在我的计算机上,这导致文件使用进行编译并-D_REENTRANT与链接-lpthread。在其他平台上,这可能有所不同。使用-pthread于大多数便携性。

_REENTRANT在GNU libc上使用,可以更改某些libc标头的工作方式。作为一个具体示例,它使errno调用函数返回线程本地位置。



 类似资料:
  • 编译标志 编译标志让你可以修改正则表达式的一些运行方式。在 re 模块中标志可以使用两个名字,一个是全名如 IGNORECASE,一个是缩写,一字母形式如 I。(如果你熟悉 Perl 的模式修改,一字母形式使用同样的字母;例如 re.VERBOSE的缩写形式是 re.X。)多个标志可以通过按位 OR-ing 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志: 这有个可用标志表,对

  • 问题内容: 在linux环境中,当我运行cython的安装脚本时,我得到 就我而言,我想删除pthread选项。如何通过cython设置文件来做到这一点?我看到有添加编译器标志的选项,但是没有要删除的选项。我的安装文件: 问题答案: 正如@DavidW指出的那样,对于许多选项,还有一个选项可以对其进行否定/覆盖,而命令行上的最后一个选项“ wins”。因此,例如添加额外的编译选项将否决默认设置或,

  • 我有一个项目。最初是一个单一模块的项目,结构是这样的 我决定把它做成多模块结构——反正我用的是< code>java 9。所以我这样分开了 哪里根 看起来像这样 以及模块<代码>pom。xml如下所示 但当我尝试运行<code>mvn clean package 问题是什么?(也许我应该将<code>maven

  • 我最近发现如果文件结尾是.I或.ii,gcc会跳过预处理,于是决定试试看。编译不包含stdio.h的hello world程序: 为什么不起作用? GCC版本6.3.0。

  • 问题内容: 例如 当Eclipse编译Java源代码时,在哪里配置-g标志?(使用Ganymede,但我怀疑在以后的版本中已更改,因此任何答案都可能会有所帮助。) 我需要的是: -G 生成所有调试信息,包括局部变量。默认情况下,仅生成行号和源文件信息。 问题答案: 选择菜单:窗口>首选项> Java>编译器 在那里,您会在“类文件生成”标题下找到几个复选框。

  • 我的ejs文件路径不工作。 SyntaxError:编译ejs时,C:\users\mikda\desktop\coltfull\section33\yelpcamp\v3\views\landing.ejs中出现意外的内标识“/” 如果上述错误没有帮助,您可能希望尝试ejs-lint:https://github.com/ryanzim/ejs-lint,或者,如果您打算创建一个异步函数,则将作