g++ 不生成任何文件或提供任何输出

g++ does not make any file or give any output

我刚开始使用 g++,从站点下载了最新版本,并制作了一个简单的 HelloWorld 程序。

#include <iostream>
using namespace std;
int main()
{
  cout << "Hello World!" << endl;
  return 0;
}

当我尝试使用 powershell window 和 g++ 执行时,在正确的目录中,我使用以下命令:

g++ HelloWorld.cpp -o HelloWorld.exe

这没有输出也没有文件。我根据我在网站上阅读的其他答案使用了 -v 命令,它给了我这个。我不知道如何继续和执行我的程序。

命令

 g++ HelloWorld.cpp -o HelloWorld.exe

不执行propgam,它只是构建可执行文件HelloWorld.exe

因此,在 g++ HelloWorld.cpp -o HelloWorld.exe 之后检查 HelloWorld.exe 文件的外观。如果是,就 运行 就像:

 .\HelloWorld.exe

我遇到了同样的问题,在使用传统的批处理控制台而不是 powershell 运行 之后,我发现 dll 不见了。 powershell命令行不会弹出dll错误(天知道为什么)

在我的例子中是 libisl-15.dll,但在您的 PC 上可能会有所不同。

希望这对世界上的某个人有所帮助!

Didier 接受的答案帮助我解决了同样的问题。在我的例子中,HelloWorld.exe 可以毫无问题地使用 printf,但是 std::cout 在 Windows 控制台中没有产生任何输出。

HelloWorld.exe 可以通过 dumpbin.exe /imports HelloWorld.exe 检查(dumpbin.exe 与 Visual Studio 2019 一起分发)。在我的例子中,这显示了对 MinGW 的 libstdc++-6.dll 的依赖,它又依赖于 MinGW 的 libgcc_s_seh-1.dlllibwinpthread-1.dll.

底线:解决方案是将 MinGW bin 文件夹添加到您的路径,如 Carucel 所建议的那样。正确配置路径后,您可以使用 'where' 命令(来自 CMD)来验证是否可以找到所需的 DLL(例如:where libstdc++-6.dll)。