【问题标题】:g++ does not make any file or give any outputg++ 不生成任何文件或给出任何输出
【发布时间】:2018-01-05 15:24:32
【问题描述】:

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

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

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

g++ HelloWorld.cpp -o HelloWorld.exe

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

【问题讨论】:

  • 这看起来像是有效的代码和有效的编译命令。它不应该向控制台输出任何内容,而是应该生成可执行文件(可能需要 libstdc++)。尝试使用 g++.exe 的完整路径运行 g++
  • “...不生成文件”是什么意思?执行g++ 后,您能否提供文件夹“C++”中的文件列表? (只需添加命令并制作新的屏幕截图)
  • @VTT 我的路径是环境变量中的 C:\MinGW\bin。我不确定我应该添加什么。
  • @VolAnd 这是输出。 !image 没有生成.o 或.exe 文件。
  • @jay 我放弃并切换到 Ubuntu。

标签: c++ powershell g++ mingw mingw32


【解决方案1】:

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

在我的情况下,它是 libisl-15.dll,但在您的 PC 上可能会有所不同。

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

【讨论】:

  • 非常感谢!我不知道为什么powershell没有显示错误,但我知道adding MinGw to the path解决了问题。
【解决方案2】:

命令

 g++ HelloWorld.cpp -o HelloWorld.exe

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

所以,在g++ HelloWorld.cpp -o HelloWorld.exe 之后检查HelloWorld.exe 文件的外观。如果是,只需像这样运行它:

 .\HelloWorld.exe

【讨论】:

  • 在Powershell中,需要使用相对路径运行:.\HelloWorld.exe or .\HelloWorld
  • 好推荐!默认情况下,无法从当前文件夹开始 - 已更新
  • 没有创建文件。这就是我的问题。我已将 dir 之后的输出屏幕截图添加到 OP。
【解决方案3】:

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)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    • 2012-01-18
    相关资源
    最近更新 更多