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

我需要带有-pthreads的-D_REENTRANT吗?

姜泰宁
2023-03-14
问题内容

在Linux(内核2.6.5)上,我们的构建系统使用调用gcc -D_REENTRANT

使用时仍然需要pthreads吗?

它与gcc -pthread期权有什么关系?我知道我应该-pthread与pthreads一起使用,还需要-D_REENTRANT吗?

附带说明一下,您在gcc 3.3.3和gcc 4.xx之间使用REENTRANT有什么区别吗?

当我使用-pthreadgcc选项时,可以看到已_REENTRANT定义。-D_REENTRANT从命令行省略是否会有所不同,例如某些对象可以在没有多线程支持的情况下进行编译,然后链接到使用pthreads的二进制文件中,这会引起问题吗?

我认为应该可以使用: g++ -pthread

> echo | g++          -E -dM -c - > singlethreaded
> echo | g++ -pthread -E -dM -c - > multithreaded
> diff singlethreaded multithreaded
39a40
> #define _REENTRANT 1

我们正在编译与静态库链接的多个静态库和应用程序,库和应用程序都使用pthreads。

我认为过去在某个阶段需要它,但想知道是否仍然需要它。谷歌搜索没有返回任何新的信息提-
D_REENTRANTpthreads。您能否指向我讨论最近版本的 kernel / gcc / pthread 使用的链接或参考?

澄清:目前,我们正在使用-D_REENTRANT和-lpthread,我想我可以仅用g ++ -pthread替换它们,看着man
gcc它设置了预处理器和链接器的标志。有什么想法吗?


问题答案:

对我而言,最好的答案是来自pts他的评论,只要他不愿意将其作为答案提交:

您进行了适当的调查,并回答了自己的问题。使用g++ -pthread,就相当于g++ -lpthread -D_REENTRANT。使用g++ -D_REENTRANT会有所不同,它可能不会设置所有链接器标志。– pt 5月18日0:30



 类似资料:
  • 问题内容: 我需要清理来自各种Microsoft Office套件应用程序(Excel,Access和Word)的字符串(复制/粘贴),每个应用程序都有自己的一组编码。 我将json_encode用于调试目的,以便能够看到每个编码的字符。 我可以使用str_replace清除到目前为止找到的所有内容(\ r \ n),但是使用\ u00a0则没有运气。 返回: 那是完全一样的。它完全忽略\ u00

  • 问题内容: 据我了解,使用a的“正确”方法是始终在退出块之前调用。像这样: 但是,我已经看到,没有它,代码就可以工作,甚至我从中也学会了使用它的答案 。所以我的问题是,是否必须使用它? 问题答案: 所以我的问题是,是否必须使用它? 为了进行交易而进行更新时必须使用。否则,事务管理器将发出并撤消所做的更改。 对于像您的示例这样的只读事务,无论有没有,我都认为没有实质性的区别。在这两种情况下,由事务管

  • 我目前正在使用一个并发链接队列,这样我就可以使用自然顺序FIFO,也可以在线程安全的应用程序中使用它。我需要每分钟记录队列的大小,并且考虑到此集合不保证大小,并且计算大小的成本为O(N),是否有任何替代的有界非阻塞并发队列,我可以在获取大小不会是一个昂贵的操作的地方使用,同时添加/删除操作也不昂贵? 如果没有集合,我需要使用带锁的LinkedList吗?

  • 问题内容: 我真的需要做mysql_close()吗?为什么或者为什么不? 即使我不执行mysql_close,也有触发器会在mysql_connect之后关闭链接吗? 问题答案: 在大多数情况下,调用不会对性能产生任何影响。但是,关闭程序不再使用的资源(文件句柄,打开的套接字,数据库连接等)始终是一个好习惯。 如果您正在做可能要花费几秒钟的操作,例如从REST API读取和解析数据,则尤其如此。

  • 问题内容: 好吧,我可能也已在较早之前发布了此内容,但到目前为止仍找不到答案,因此请帮助我解决这个问题。 我的数据库结构: ATT (表) Act_ID(PK) Assigned_To_ID(FK,请参阅) Project_ID(FK,请参阅) Product_ID(FK,请参阅) 状态(可以是) 产品表 产品编号(PK) 产品名称 项目表 Project_ID(PK) 项目名 员工表 Emp_I

  • 该项目为 PHP 提供基于 POSIX 的多线程编程机制。可异步执行任何与定义的用户自定义方法和函数。内建支持同步和同步方法。 要求: PHP5.3+ ZTS Enabled ( Thread Safety ) Posix Threads Implementation 示例代码: <?phpclass AsyncOperation extends Thread {  public function