【问题标题】:g++ in terminal, build works but no a.out终端中的 g++,构建工作但没有 a.out
【发布时间】:2018-04-01 20:13:56
【问题描述】:

我的代码是

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

当我使用

g++ hello.cpp

没有给出警告、错误或任何类型的输出。那我试试

./a.out

这不起作用,我检查目录没有找到新文件。我不确定错误是什么,因为代码太短了。我知道 g++ 正在运行,但我不知道为什么没有创建 a.out 文件。

这是在带有 MinGW 的 Windows 中,这是文件夹中唯一的文件。

使用 a.exe 也不起作用。

【问题讨论】:

  • 你说在 Windows 上?使用 MinGW 还是 Cygwin?你试过./a.exe吗?在 Windows 上,所有可执行程序都必须以 .exe 结尾。在许多其他系统(例如 C、C++ 和 a.out 文件源自的基于 Unix 的系统)中,这不是必需的,但它在 Windows 上是必需的。
  • @TobiSH 在我看来完全不同。
  • 在 Windows 上,使用 Cygwin,我得到 a.exe,而不是 a.out。您的目录中有哪些文件?
  • 不再有任何充分的理由使用 MinGW 或 Cygwin,并且有很多充分的理由不使用。 WSL 的存在是有原因的。使用它。
  • @torazaburo:TBH MinGW 提供了一个很好的原生 Windows 编译器,它的代码生成通常比 MSVC 好得多。

标签: c++ windows terminal g++


【解决方案1】:

您是否尝试过使用 -Wall 选项来查看是否有任何东西阻碍了编译? 如果不尝试使用 -o 输出到 a.exe 以外的可执行文件。我遇到了它不会输出的问题,这似乎是当我的内存不足或我的硬盘正在使用时。尝试检查您的硬盘驱动器是否正在使用,如果是,请等到它不在使用。 如果仍然没有错误,请确保您已正确安装它并且没有丢失任何内容。

【讨论】:

  • 我试过了,没有遇到任何问题。我可以尝试检查我的硬盘,但我想我会继续使用 WSL。
【解决方案2】:

我在使用 MinGW 时遇到了完全相同的问题。原来我没有

/c/MinGW/bin

在PATH。设置export PATH=$PATH:/c/MinGW/bin 就像一个魅力。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-06
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    相关资源
    最近更新 更多