mingw32:所有编译的可执行文件挂起

mingw32: all compiled executables hang

我刚刚安装了最新版本的 mingw32 并试图编译一个 hello world c++ 程序失败。

安装在默认的 C:/MinGW 目录中。我选择了使用 mingw-get gui 进行安装的选项,并在左侧栏中选择了“基本设置”选项卡,标记了 mingw32-base 和 mingw32-gcc-g++ 选项以进行安装。然后我应用了更改并下载了所有文件。最后,我将 C:/MinGW/bin 添加到 windows.

的路径中

现在我创建一个如下所示的文件:

test.cpp:

#include <iostream>

int main() {
    std::cout << "hello world!" << std::endl;
    return 0;
}

然后我用g++ test.cpp

编译

现在,问题有点难以诊断。当我执行输出 a.exe 文件时,命令行只是挂起,没有输出,没有 return。如果我尝试使用 ctrl-c 取消执行,什么也不会发生。当我强制退出命令行并尝试删除 a.exe 时,windows 告诉我该可执行文件当前已被系统打开,强制删除该文件的唯一方法是使用 FileASSASSIN。

一些注意事项,我安装了 visual studio 12,但路径中没有任何相关内容。我以前安装过 cygwin64,但它已被完全删除。我从 powershell、普通命令行或 Console2 得到相同的行为运行。 Google 建议我尝试静态链接 libstdc++ 与 -static-libstdc++ 无济于事。

此外,当使用调试符号编译,然后使用 gdb a.exe 运行,然后 运行 启动时,它也同样挂起。

我不知道如何在此处获取信息以进行故障排除。有没有人有任何见识?

根据@M.M 的建议,我发现 avast 防病毒软件是停止 mingw32 生成的任何可执行文件的无声原因。这令人费解,因为我是 运行 几个小时前在命令行上由 visual studio 创建的可执行文件。

经验教训:如果遇到意外行为,请始终尝试使用防病毒软件。