如何在命令行上使用MinGW编译C程序?

32

在Windows 7的命令行中,要编译一个基本的C程序,需要输入什么命令?

就像我真的想知道你在命令提示符中键入什么,以编译一个.c文件。

我尝试过:

> gcc foo.c

但是它显示:

'gcc' is not recognized as an internal or external command, 
 operable program or batch file.

我也尝试了:

> minGW foo.c

但我得到了返回:

 'minGW' is not recognized as an internal or external command, 
  operable program or batch file.

我设置了一个路径环境变量指向MinGW的安装位置:

C:\Program Files (x86)\CodeBlocks\MinGW\bin

我真的找不到任何关于我哪里出错的信息,也在官方MinGW文档中找不到任何内容,因为这似乎是一些如此简单的问题,有点尴尬的问题,人们应该知道该怎么做?


我有一个名为test.c的小程序,我想在Windows命令行中编译它。我进入了它所在的正确目录,但gcc命令返回未识别的命令,make也是如此。 - Finding Nemo 2 is happening.
@CodyGray,你的链接好像失效了。能否请你更新一下? - itsols
14个回答

25

这表明它找不到gcc.exe

我设置了一个指向MinGW安装路径的环境变量

也许您没有正确设置路径?

echo %path%

显示 gcc.exe 的路径吗?否则,编译类似于 Unix:

gcc filename.c -o filename

回显%path%返回C:\ Program Files(x86)\ CodeBlocks \ MinGW \ bin,而在bin中是gcc.exe,是否完全匹配其位置? - Finding Nemo 2 is happening.
1
如果你进入 C:\Program Files (x86)\CodeBlocks\MinGW\bin 目录并输入命令 gcc --version,会发生什么? - Michael Burr
1
也许尝试卸载mingW并在C:\mingw中重新安装它,并设置路径,然后再次查看是否有效。 - P.P
3
众所周知,MinGW在路径包含空格时会出现问题。所以它只能在文件夹C:\mingw下运行。 - itsols
@l3x,按照您的建议,在文件夹C:\MinGW中重新安装MinGW,并将路径变量设置为该位置,问题得到了解决。再次感谢! - Finding Nemo 2 is happening.
显示剩余3条评论

11

我曾经遇到过这个问题,但一直找不到原因。其实很简单:一旦你设置好了环境路径,你必须关闭CMD窗口,然后再重新打开它,让它意识到新的环境路径。


这个。我打开了5篇博客,10篇新文章,检查了20次路径,但我忘记关闭并重新打开CMD以反映变量的更改... - powersource97

4

第一步:

在系统变量中的Path中添加你的minGW的bin文件夹的目录(例如:C\mingw64\bin)。可视化示例


编译:

.c: gcc filename.c -o desire

.cpp: g++ filename.cpp -o desire


运行:

desire/ 或者 ./desire


1
我遇到了与 .c 文件相关的问题,这些文件包含函数(而不是我的程序中的 main())。例如,我的头文件名为 "fact.h" 和 "fact.c",我的主程序名为 "main.c",所以我的命令是这样的:
E:\proj> gcc -c fact.c

现在我有一个fact.c的目标文件(fact.o)。之后:
E:\proj>gcc -o prog.exe fact.o main.c

然后我的程序(prog.exe)已经准备好并且正常工作。我认为在gcc之后加上-c很重要,因为它可以生成目标文件,以便能够组合成我们需要的程序。如果不使用-c,gcc会尝试在您的程序中查找main函数,当它找不到时,就会出现这个错误。

1
你可以通过点击“我的电脑”,选择“属性”,然后选择“高级系统设置”,进入“环境变量”页面,编辑并粘贴你的目录,来永久地包含MinGW文件的目录。

1

只需将环境变量设置为gcc.exe的确切路径,如下所示:

C:\Program Files (x86)\CodeBlocks\MinGW\bin\gcc.exe

3
不要在路径中包含空格(例如“Program Files”)的位置安装mingw。 - kuhajeyan

1

在将MinGW存档解压到C:\MinGW并将路径设置为环境变量C:\MinGW\bin;后,我遇到了相同的错误消息。

当我尝试编译时,出现以下错误:

gcc: error: CreateProcess: No such file or directory

最终我发现,在将这些下载的存档解压到C:\MinGW时,有一些被报告为损坏(但我最初忽略了这个问题)。 一旦我删除了这些损坏的文件,并从SourceForge重新下载了整个存档,成功地将它们解压到C:\MinGW中,错误就消失了,编译器正常工作,并输出了我想要的hello.exe

我运行了这个命令:

gcc hello.c -o hello

结果是这样的(一个闪烁的下划线):

_


0

你的gcc安装在哪里?

我的gcc安装在"C:\Program Files\CodeBlocks\MinGW\bin\"。

"C:\Program Files\CodeBlocks\MinGW\bin\gcc" -c "foo.c"
"C:\Program Files\CodeBlocks\MinGW\bin\gcc" "foo.o" -o "foo 01.exe"

0

我回答这个问题有点晚(确切地说是5年),但我希望这能帮助到某些人。

我怀疑这个错误是由环境变量而不是GCC引起的。当您设置新的环境变量时,您需要打开一个新的命令提示符!这是90%的问题所在(当我第一次下载GCC时,我被卡了3个小时!)如果不是这种情况,您可能没有正确设置环境变量或者您所在的文件夹名称中包含空格。

一旦您让GCC工作起来,每次编译和删除都会很麻烦。如果您不想安装完整的IDE并且已经安装了Python,请尝试这个GitHub项目:https://github.com/sophiadm/notepad-is-effort 这是一个用Python中的tkinter编写的小型IDE。您只需复制源代码并将其保存为.py文件即可。


0

我曾经在Windows上安装MinGW时遇到过这种问题,即使我在环境变量中添加了正确的系统PATH。

经过数天的痛苦,我终于偶然发现了一个帖子,建议卸载原始的MinGW编译器并删除C:\MinGW文件夹,然后安装TDM-GCC MinGW编译器,可以在这里找到。

您可以从下载页面选择64/32位安装程序,并为您创建环境路径变量。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接