web-dev-qa-db-ja.com

std :: thread / mutexをmingwおよびg ++ 4.7.2を使用してWin7で動作させる


ご挨拶、

私は最近、UNIXシェルターから移動して、おそらくクロスプラットフォームのネットワークライブラリをテストしましたが、mingwがc ++ 11のものを供給されたくないことを発見しました。

Win7にはc ++ 11のサポートが含まれていないため、必要なヘッダーが不足していると思います。

VS2012で問題なくコンパイルされます
しかし、g ++はそれを拒否します。

error: 'thread' in namespace 'std' does not name a type
error: 'mutex' in namespace 'std' does not name a type

質問は:

VS2012インストールで提供されているものを使用せずにc ++ 11ヘッダー/ライブラリのコピーを取得するにはどうすればよいですか?

P.S. #1 mingw-get updateを試しましたが、それでも<thread>が見つかりません
P.S。 #2-std = c ++ 11も使用しています


誠意をこめて、
クリス。

22
gifnoc-gkp

これらのMinGW-w64ビルドは、C++ 11スレッド、アトミック操作などをサポートします

  1. MinGW-buildsがMinGW-w64プロジェクトに統合されました
  2. MinGW-ビルド(プロジェクトは古く、更新されません。上記のポイントを参照してください)
  3. MinGW-w64 rubenvb 64ビット および 2ビット ビルド

MinGW-w64は64ビットだけではなく、それをサポートしていることに注意してください。これは、新しいVista + APIの多くが欠落している古いMinGW(.org)とは異なり、もちろん64ビットのサポートです。

16
gifnoc-gkp

こちらもご覧ください: https://github.com/meganz/mingw-std-threads これは、pthreadのwin32ポートを使用せずに、std :: threadなどをより軽量にネイティブに実装したものです。

6