新しい開発マシンをセットアップしました。それはWindowsを実行しています。& Visual Studio 2017コミュニティ。インストールされ、ビルドブースト(1.64.0、完全なビルド)、すべての良い。プログラムが起動する前にboost :: threadがハングしますか?
私はいくつかのIPCを使用していましたが、すべてが良いですが、私は奇妙な動作を開始しました。私のプログラムは非常に最初からハングアップし始めました。
私は途中でコンソールアプリケーションを扱っています。プログラムはちょうど開始し、何らかのユーザー入力を待っているか、または何らかの出力が起こる前にメインスレッドがスリープしていたかのようにカーソルが点滅します。私のすべてのプログラムの最初のことはヘッダーを印刷することです。
問題の特定に苦労した多くの失敗の後、私はboost.threadの機能を使用したときにしか起こらないことに気付きました。 VS2015からVS2017にプロジェクトを移行する際に問題があると考えました。ブランドの新しいプロジェクトを作成し、同じことが起こります。
最も簡単なプログラム(例:simple thread example)を使用していても、私はすべて点滅するカーソルを取得します。デバッグやリリースのプロファイルをビルドしていても、デバッグを試みても問題ありません。
「ステップイン」コマンドでプログラムを起動しても、VSはどのブレークポイントにも到達しません。 "ぶら下がっ"は、私のコードのエントリポイントの前に起こっているようです。
私は質問が明確であることを願っています。「吹き出しは何が起こっているのですか?
述べたように:他のBoostライブラリは、ブーストを含め、正常に動作している::ロケールと後押し::クロノを
--editを:、何の警告を罰金コンパイルしません。 "一見"うまく動作し、エラーも終了せず、メインスレッドがスリープしているかのようにハングします。
--edit 2:完全なコード例:
#include <boost/thread.hpp>
#include <boost/chrono.hpp>
#include <iostream>
void wait(int seconds)
{
boost::this_thread::sleep_for(boost::chrono::seconds{seconds});
}
void thread()
{
for (int i = 0; i < 5; ++i)
{
wait(1);
std::cout << i << '\n';
}
}
int main()
{
//this point is never reached!!?! Hangs before my own code even starts
std::cout << "start!" << std::endl;
boost::thread t{thread};
t.join();
}
[、最小完全、かつ検証例】なし(http://stackoverflow.com/help/ –
"単純なスレッドの例"を送ったリンクは十分ではありませんか?私はここにコードを貼り付けます。編集:貼り付け:) – LFLFM
一度欠けている終了引用符clangの下でうまく動作します。どのコンパイラを使用していますか? –