我刚刚安装了最新版本的 mingw32 并试图编译一个 hello world c++ 程序失败。
安装在默认的 C:/MinGW 目录中。我选择了使用 mingw-get gui 进行安装的选项,并在左侧栏中选择了“基本设置”选项卡,标记了 mingw32-base 和 mingw32-gcc-g++ 选项以进行安装。然后我应用了更改并下载了所有文件。最后,我将 C:/MinGW/bin 添加到 windows 的路径中。
现在我创建一个如下所示的文件:
测试.cpp:
#include <iostream>
int main() {
std::cout << "hello world!" << std::endl;
return 0;
}
然后我用g++ test.cpp
编译
现在,这个问题更难诊断了。当我执行输出 a.exe 文件时,命令行只是挂起,没有输出,也没有返回。如果我尝试使用 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 制作的可执行文件。
经验教训:如果遇到意外行为,请始终尝试使用防病毒软件。
关于c++ - mingw32:所有编译的可执行文件挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33605828/