我刚刚安装了MinGW-w64,我正在尝试编写一个快速测试,看看我是否可以在我的机器上构建,然后在我兄弟的机器上运行它没有问题。不幸的是,我没有那么远。
我遇到的问题是我的代码编译得很好,但是如果我在git bash上运行它,我就没有输出,它会跳过我的输入。当我在Powershell上运行它时,它按预期工作。如果我注释掉一行(在我发布的最小版本中),它在git bash以及Powershell上运行正常。
以下是代码:
#include <mutex>
#include <iostream>
using std::mutex;
using std::cout;
using std::endl;
using std::cin;
int main(int argc, char **argv){
cout << "Print the thing" << endl;
cout.flush();
mutex counterMutex; //If this is commented out, it works.
cin.get();
}
不幸的是,在实际的程序中,我想做一些多线程,我需要互斥,所以只是跳过它们不是一种选择。
谁能告诉我发生了什么?