MinGW g++在PowerShell中没有输出

7

我看到了一个类似的问题,但是没有找到答案...

在Windows 7 64位系统下,我一直试图通过Power Shell使用MinGW gcc版本编译一个简单的“hello world”C++源代码。环境变量已经添加。从Power Shell中,我可以访问编译器,例如 g++ --help 可以正常工作,但是在编译时没有可执行文件或任何其他输出。

这是main.cpp的内容:

#include <iostream>
using namespace std;

int main(){
  cout << "Hello World" << endl;
  return 0;
}

尝试使用以下内容:
g++ -o test.exe main.cpp

当我按回车键时,编译似乎已完成,但没有任何响应,并且我的源代码仍然独自坐在它的文件夹中。
如果源文件中有错误,编译器会识别出来,并像正常情况下一样显示错误消息。
如果使用-Wall进行编译,即使故意制造错误,警告消息也会出现。
所以,目前看起来一切都还好。为了确保,我已经在整个硬盘驱动器中搜索了我的test.exe文件,但是它不在任何地方...
无论如何,我正在使用Code Blocks编程C ++。因此,提到的MinGW gcc与Code Blocks一起安装。从Code Blocks开始,一切正常,没有任何问题。
然后,我单独安装了MinGW到C:\ MinGW,注意不在目录名称中使用任何空格。安装了MinGW v0.6.2-beta-20131004-1。一切都发生在之前提到的方式。当然更新了环境变量,但仍未创建可执行文件或任何Power Shell中表明该过程失败的响应。
尝试使用Power Shell和Power Shell(x86)。发生了同样的事情。
请帮助我想出任何主意,让我知道我做错了什么。
上传: 如Jean-François Fabre建议的那样,我使用选项-v运行了g ++命令,结果在此处: 使用选项-v运行

我认为g++默默地崩溃了,这解释了为什么没有可执行文件被创建。你可以尝试使用“-v”选项(详细模式)来查看发生了什么。 - Jean-François Fabre
你正在使用 Powershell GUI 吗?检查一下控制台版本是否表现出相同的行为可能是值得的。(打开 cmd.exe 窗口并运行“powershell”)。 - Harry Johnston
你正在使用PowerShell。那是错误的。我从未遇到过一个如此公开设计以挫败其所谓的目的的软件:一个命令解释器通常无法运行程序,因为它不能传递一般参数,脚本默认禁用,可怕的语法几乎没有一般功能,所有特殊情况,控制台中使用不可读的颜色,没有技术文档,只有模糊的描述性任务特定事项等等。简单地说,除非您在进行.NET编程,否则不要使用它。 - Cheers and hth. - Alf
PowerShell可能存在一般问题。我已经使用完全相同的方法在另一台Win7机器上编译了我的“hello world”,甚至编译后的a.exe也无法运行。我在a.exe文件夹中键入.\a命令,但什么都没有发生,就像使用g++编译时一样。 - RPeter
顺便说一下,我是PowerShell的新手。您有任何更好的Windows控制台平台建议吗? - RPeter
显示剩余4条评论
1个回答

2
作为被删除答案之一所说,当g++位于当前目录时,此问题不会发生。此外,我发现当它通过PATH环境变量可访问时也不会发生。我不知道原因(可能与共享库或辅助可执行文件的搜索路径有关),但以下内容在Msys2上解决了我的问题:
export PATH=$PATH:/mingw64/bin/

在上述操作后,我确实从g++获得了有用的标准错误输出,并且编译器通常按预期工作。


我没有答案,只有观察。我用mingw64编译了一个“helloworld”cpp应用程序,在Powershell中执行时没有cout输出。在常规的“Windows命令提示符”和MinGW64终端中,它可以正常工作。我检查了PATH,它被正确设置(“C:\ msys64 \ mingw64 \ bin \”在其中)。然后我以管理员身份运行PowerShell并再次执行hellowrold应用程序,输出就出现了。从那时起,我就没有问题了。 - o_ndra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接