1. ホーム
  2. c++

[解決済み] コンパイル時の-pthreadフラグの意味

2022-04-25 03:15:25

質問

さまざまなマルチスレッドのCおよびC++プロジェクトで、私は -pthread フラグは、コンパイルとリンクの両方の段階で適用されますが、まったく使わず、単に -lpthread をリンクステージに送る。

でコンパイル・リンクしないのは危険ですか? -pthread フラグを使用します。 -pthread を実際に行うのですか?私は主にLinuxプラットフォームに興味があります。

どのように解決するのですか?

試してみてください。

gcc -dumpspecs | grep pthread

で始まるものを探します。 %{pthread: .

私のコンピュータでは、これによって、ファイルが -D_REENTRANT で、リンクは -lpthread . 他のプラットフォームでは、これは異なる可能性があります。使用方法 -pthread を使用すると、最も移植性が高くなります。

使用方法 _REENTRANT は、GNU libc上で、いくつかのlibcヘッダの動作方法を変更します。具体的な例として、それは errno は、スレッドローカルな場所を返す関数を呼び出します。