如何使用 MinGW 在命令行上编译 C 程序?
Posted
技术标签:
【中文标题】如何使用 MinGW 在命令行上编译 C 程序?【英文标题】:How to compile C program on command line using MinGW? 【发布时间】:2012-05-26 13:28:09 【问题描述】:在 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 的命令行编译它。我 cd 到它所在的正确目录,但 gcc 命令返回无法识别的命令,make 也是如此。 @CodyGray 您的链接似乎已损坏。更新一下好吗? 【参考方案1】:第一:
在系统变量 => 路径中添加您的 minGW 的 bin 文件夹目录(例如:C\mingw64\bin)。 visual example
编译:
.c: gcc 文件名.c -o 欲望
.cpp: g++ 文件名.cpp -o 欲望
运行:
desire/ 或 ./desire
【讨论】:
【参考方案2】:在 Windows 10 中,可以在其他版本的 Windows 中遵循类似的步骤。
右击“我的电脑”选择属性,进入高级系统设置->高级->选择“环境变量..”。
找到“路径”选择它并选择编辑选项 -> 单击新建并添加“C:\MinGW\bin”(或 gcc.exe 的位置,如果您已安装在其他位置)-> 保存并重新启动命令提示符。 Gcc 应该可以工作。
【讨论】:
【参考方案3】:您可以永久包含 MinGW 文件的目录,方法是单击我的电脑、属性、高级系统设置、环境变量,然后编辑并粘贴您的目录。
【讨论】:
【参考方案4】:我回答这个问题很晚(确切地说是 5 年),但我希望这对某人有所帮助。
我怀疑这个错误是因为环境变量而不是 GCC。当您设置一个新的环境变量时,您需要打开一个新的命令提示符!这是 90% 的问题(当我第一次下载 GCC 时,我坚持了 3 个小时!)如果不是这种情况,你可能没有正确设置环境变量,或者你在一个文件夹中名称中的空格。
一旦你有 GCC 工作,每次编译和删除都会很麻烦。如果你不想安装完整的 ide 并且已经安装了 python,试试这个 github 项目:https://github.com/sophiadm/notepad-is-effort 它是一个用 tkinter 在 python 中编写的小型 IDE。您只需复制源代码并将其保存为 .py 文件即可
【讨论】:
【参考方案5】:你的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"
【讨论】:
【参考方案6】:我对包含函数的 .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,如果找不到,则会出现此错误。
【讨论】:
【参考方案7】:我遇到了这个问题,但不知道为什么它一直在发生。原因很简单:一旦你设置了环境路径,你必须关闭 CMD 窗口,然后再次打开它,它会知道新的环境路径。
【讨论】:
这个。我打开了 5 个博客,10 篇新文章,检查了 20 次路径,我忘记了关闭并重新打开 CMD 以反映更改的变量...【参考方案8】:在将 MinGW 压缩包解压到 C:\MinGW
并将环境变量的路径设置为 C:\MinGW\bin;
后,我遇到了同样的错误消息。
当我尝试编译时出现此错误!
gcc: 错误: CreateProcess: 没有这样的文件或目录
我终于发现一些下载的档案在将它们解压到C:\MinGW
时被报告损坏(但我最初忽略了这一点)。
一旦我删除了损坏的文件并再次从 SourceForge 重新下载整个档案,将它们成功解压缩到 C:\MinGW,错误就消失了,编译器工作正常并输出我想要的 hello.exe
。
我跑了这个:
gcc hello.c -o hello
结果结果是这样的(闪烁的下划线):
_
【讨论】:
【参考方案9】:表示找不到gcc.exe
。
我将路径环境变量设置为安装 MinGW 的位置
也许你没有正确设置路径?
echo %path%
显示 gcc.exe 的路径?否则编译类似于Unix:
gcc filename.c -o filename
【讨论】:
Echo %path% 返回 C:\Program Files (x86)\CodeBlocks\MinGW\bin 并且在 bin 中是 gcc.exe ,完全匹配它的位置? 'gcc' 未被识别为内部或外部命令、可运行程序或批处理文件。 如果你 cd 到C:\Program Files (x86)\CodeBlocks\MinGW\bin
并输入命令 gcc --version
会发生什么?
也许,尝试卸载mingW并安装到C:\mingw并设置路径,再看看是否有效。
@kingsindian 众所周知,MinGW 在包含空格的路径方面存在问题。所以这就是它在文件夹 C:\mingw 中工作的原因【参考方案10】:
我曾经在安装 MinGW 以在 Windows 中工作时遇到这种问题,即使我在环境变量中添加了正确的系统 PATH。
经过几天的痛苦,我终于偶然发现了一个线程,建议卸载原始 MinGW 编译器并删除 C:\MinGW
文件夹并安装 TDM-GCC MinGW 编译器,可以在 here 找到。
您可以从下载页面选择 64/32 位安装程序,它也会为您创建环境路径变量。
【讨论】:
【参考方案11】:如果您将文本粘贴到路径变量中并在分号前添加了一个空格,则应将其删除并在目录末尾添加一个反斜杠 (;C:\Program Files (x86)\CodeBlocks\MinGW\bin
【讨论】:
【参考方案12】:只需将环境变量设置为 gcc.exe 的确切路径,如下所示:
C:\Program Files (x86)\CodeBlocks\MinGW\bin\gcc.exe
【讨论】:
永远不要在包含“程序文件”等空格的路径上安装mingw【参考方案13】:您可以输入msys shell,而不是设置%PATH%
。在标准的 msys 和 mingw 安装中,gcc 在路径中,因此您可以运行 gcc
或 which gcc
。
我的 Windows 7 上有一个批处理文件 sh.bat
,位于 %PATH% 中:
C:\lang\msys\bin\sh.exe --login %*
每当我想使用 gcc 时,我都会输入 cmd,然后是 sh
,然后是 gcc
。我觉得很方便。
在使用源自 linux 的软件时,请避免使用间隔目录,例如 Program Files
。将它们安装到Program_Files
。对于您可能希望在 msys 环境中运行的工具也是如此。
【讨论】:
以上是关于如何使用 MinGW 在命令行上编译 C 程序?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Mingw-64在 Kali Linux上编译Windows漏洞
如何在 QT Creator 中使用 mingw 在多核上编译