【发布时间】: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)以获得更新的编译器版本:)