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

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

Susan Sarandon
Susan Sarandonオリジナル
2024-11-02 09:29:31355ブラウズ

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 までご連絡ください。