代码之家  ›  专栏  ›  技术社区  ›  leeeroy

编译时-pthread标志的意义

  •  132
  • leeeroy  · 技术社区  · 16 年前

    在各种多线程的C和C++项目中,我看到了 -pthread 应用于编译和链接阶段的标志,而其他人根本不使用它,只是通过 -lpthread 连接阶段。

    如果不编译和链接 -线程 旗子-即什么 -线程 事实上呢?我主要对Linux平台感兴趣。

    2 回复  |  直到 8 年前
        1
  •  101
  •   C. K. Young    13 年前

    尝试:

    gcc -dumpspecs | grep pthread
    

    寻找任何以 %{pthread: .

    在我的计算机上,这会导致文件被编译为 -D_REENTRANT ,并与 -lpthread . 在其他平台上,这可能有所不同。使用 -pthread 最方便携带。

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

        2
  •  35
  •   Dmitry    16 年前

    man gcc 以下内容:

    -线程 添加对使用pthreads的多线程的支持 图书馆。这个 选项设置预处理器和链接器的标志。

    推荐文章