ホームページ > バックエンド開発 > C++ > 「-pthread」を使用しても、マルチスレッド コードで「std::system_error」がスローされるのはなぜですか?

「-pthread」を使用しても、マルチスレッド コードで「std::system_error」がスローされるのはなぜですか?

Susan Sarandon
リリース: 2024-11-02 09:29:31
オリジナル
371 人が閲覧しました

Why Does My Multithreaded Code Still Throw 'std::system_error' Even With '-pthread'?

g : 'std::system_error' を使用したマルチスレッド コードのコンパイルが解決されました

マルチスレッド コードのコンパイル中にエラー 'std::system_error' が発生しましたg だとイライラするかもしれません。 「-pthread」フラグを明示的に指定しているにもかかわらず、問題は解決しません。

提供されたコードを調査したところ、明らかな問題はないようです。ただし、この問題は gcc のバグによって発生します。 SO C チャットのメンバーによって提供された回避策は、解決策を提供します。

-Wl,--no-as-needed
ログイン後にコピー

このフラグをコンパイル コマンドに追加すると、問題が解決され、マルチスレッド コードが正常にコンパイルおよび実行できるようになります。更新されたコンパイル コマンドは次のようになります:

$ g++ main.cpp -o main.out -pthread -std=c++11 -Wl,--no-as-needed
ログイン後にコピー

以上が「-pthread」を使用しても、マルチスレッド コードで「std::system_error」がスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート