【问题标题】:mingw32: all compiled executables hangmingw32:所有编译的可执行文件挂起
【发布时间】:2016-02-09 21:42:11
【问题描述】:

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

安装在默认的 C:/MinGW 目录中。我选择了使用 mingw-get gui 安装的选项,并选择了左侧栏中的 Basic Setup 选项卡,标记了 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 文件时,命令行只是挂起,没有输出,没有返回。如果我尝试使用 ctrl-c 取消执行,则没有任何反应。当我强制退出命令行并尝试删除 a.exe 时,windows 告诉我可执行文件当前已被系统打开,而强制删除文件的唯一方法是使用 FileASSASSIN。

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

另外,当用调试符号编译然后用gdb a.exe运行,然后你运行start,它也一样挂起。

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

【问题讨论】:

  • 无法重现。点击sourceforge.net/projects/mingw/files上的“寻找最新版本?下载mingw-get-setup.exe (86.5 kB)”,选择安装基本包和g++,编译你的测试程序,没有其他选项,然后运行它。它说“你好,世界!”,唉。
  • 啊,还有一些东西可以尝试。创建一个新用户并为此安装 MinGW。您以前的一些安装可能会在意想不到的地方留下垃圾;如果幸运的话,“新用户”会从相对干净的状态开始。
  • 关闭任何杀毒软件
  • 侵入性防病毒软件是可能的。此外,您可能想尝试 mingw-w64(例如通过 msys2)以获得更新的编译器版本:)

标签: c++ windows mingw32


【解决方案1】:

在@MM 的建议下,我发现 avast 防病毒软件是停止 mingw32 生成的任何可执行文件的静默原因。这很令人费解,因为几个小时前我还在命令行上运行由 Visual Studio 生成的可执行文件。

教训:如果您遇到意外行为,请务必尝试您的防病毒软件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多