備忘録
Windowsでも動くC++プログラムが使いたくて、Mingwで開発をしていたが、
C++11規格で追加されたstd::this_threadが使えなくて困ったので対策を示す。 結論
コンパイラとして「x86_64-mingw32-g++-posix」を使おう。
困ったこと
コンパイラに「x86_64-mingw32-g++」を指定して次のプログラムをコンパイルできなかった。
#include <chrono>#include <thread>// 中略void foo() {using namespace std::chrono_literals;std::this_thread::sleep_for(2000ms);std::this_thread::sleep_for(std::chrono::seconds(2));}
コンパイルするとエラーとなる
src/xxx.cc: 47:14: error: 'std::this_thread' has not been declared
私が使いたいのは64ビット向けMingwだが、win32とposixという2種類のバリエーションが有り、「x86_64-mingw32-g++」を指定すると「x86_64-mingw32-g++-win32」扱いとなり、「x86_64-mingw32-g++-win32」ではstd::this_threadが使えないということのようである。
0 件のコメント:
コメントを投稿