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

时间:2011-10-29 04:05:12

标签: c gcc mingw

好的,我刚开始学习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,找不到办法做同样的事情。

3 个答案:

答案 0 :(得分:6)

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

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

在Unix上,由于历史原因,可执行文件的默认名称为a.out。对于MinGW,默认名称为a.exe

因此,在运行gcc a\c1.c后,您可以运行a.exe./a.exe来运行该程序。

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

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

答案 1 :(得分:1)

tcc正在编译,链接和执行您的C文件。

gcc正在编译你的C文件,但没有链接或执行它。

尝试:

C:\>gcc -o a\ci.exe a\c1.c

其次是

a\ci.exe

一旦弄明白,您就会想了解make

答案 2 :(得分:1)

由于您是新手,我强烈建议您使用-Wall标志(以获取GCC可以提供的所有警告)和-g标志(以获取可调试的可执行文件)进行编译。养成改善代码的习惯,直到你不再收到任何警告为止。确实,学习如何使用make。如果您希望编译器optimize生成的代码,请将-g替换为-O2(但是在程序正确运行后执行此操作,并且您已对其进行了调试)。