c - 如何使用 MINGW 运行 C 代码/文件?

标签 c gcc mingw

OK,我刚开始学C语言,看了很多人建议用MinGW做编译器。我下载、安装并正确设置(我认为)并设置路径。一切似乎都很好。 我的问题是当我做这样的事情时,我找不到从 CMD 运行 C 文件的方法:

C:\>gcc a\c1.c

CMD 上没有任何显示

在 c1.c 文件中我有以下内容:

#include <stdio.h>

int main(void)
{
    printf("this is a test.\n");
    return 0;
}

我试过 tcc 编译器并以这种方式使用它:

C:\>tcc a\c1.c

输出如下:

this is a test.

我怎样才能让 MinGW 以同样的方式输出? 我查看了 MinGW/gcc 手册和 HowTos,但找不到做同样事情的方法。

最佳答案

gcc filename.c 编译并链接您的文件——但它不会像您预期的那样将可执行文件写入 hello.exe(当然它不会'执行它)。

而且,作为基于 Unix 的工具的惯例,gcc 通常不会打印任何内容,除非出现错误。它完成并且你得到一个新的 C:\> 提示这一事实告诉你它成功了。

在 Unix 上,由于历史原因,可执行文件的默认名称是 a.out(它代表“汇编程序输出”)。对于 MinGW,默认名称是 a.exe,因为 Windows 要求可执行文件有 .exe 后缀。

所以运行gcc a\c1.c后,可以运行a.exe.\a.exe来运行程序.

或者,更好的是,正如 Doug 所建议的,您可以使用 -o 选项来指定生成的可执行文件的名称。

(如果您只想运行编译器并生成目标文件而不是可执行文件,请使用 gcc -c。)

请注意,此行为(除非出现问题,否则不打印任何内容,将可执行文件命名为 a.outa.exe 等)由 gcc 定义特别是编译器。这不是C语言的特性。其他 C 编译器的行为可能类似也可能不同。

关于c - 如何使用 MINGW 运行 C 代码/文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7936940/

相关文章:

Qt 如何制作和安装插件?

无法从 netbeans 输入值,但在 cmd 中工作

c - 与端序无关的转换为大端序的宏

c - 如果打开文件,fopen() 会返回什么文件指针?

c++ - 使用不同优化级别编译的不同翻译单元中的模板实例化

gcc - 链接器如何知道将哪些文件链接在一起?

c - 自动化 C 单元测试

c - 当我们在C套接字编程中使用accept()和connect()时,主机端口号是多少

c - 如何在 C 中打印到标准输出和文件

c - 在 C 中打印字节数组时处理神秘输出