【问题标题】:Cannot compile c file from command line无法从命令行编译 c 文件
【发布时间】:2014-08-27 19:13:07
【问题描述】:

我刚刚开始使用 C 并下载了 CodeBlocks gcc 编译器。现在一切正常,即我可以创建简单的源代码并从命令行或通过 CodeBlocks 编译 .c 文件,直到最近。

我有一个名为fairwell.c 的简单程序,通过命令行输入编译为fairwell.exe

gcc fairwell.c -o fairwell.exe

其中显示了以下文字:

Goodbye cruel world

然后我删除了这些fairwell.c.exe 文件。现在,每次我尝试在命令行编译一个新的 .c 文件时,它都会一直显示此文本 Goodbye cruel world 并且不会编译该文件。但是,我仍然可以通过 CodeBlocks 直接编译文件。

问题出在哪里?

【问题讨论】:

  • 你用什么命令编译代码?
  • 你在哪个操作系统上编码?你如何运行你的文件?我建议使用gcc -Wall -g fairwell.c -o fairwell.exe 编译并使用./fairwell.exe 运行;使用调试器(例如gdb)查找错误。
  • @hyde:试试type -a gccwhich gcc。我知道的唯一where 命令内置在 tcsh 中。
  • 是的,这就是我所做的(感谢 hyde),我将告别文件的名称更改为 gcc。它现在工作

标签: c gcc compilation cmd codeblocks


【解决方案1】:

现在每次我尝试在命令行编译一个新的 .c 文件时 一直显示这个文本再见残酷的世界并且不编译 文件。

嗯,这意味着当您运行 gcc 时,您实际上运行的是旧的 farewell 程序。所以,你一定以某种方式将它重命名为 gcc,并且它在真正的 gcc 之前位于 PATH 中,或者很可能在当前目录中。如果它可以在您的 IDE 下运行,则意味着您应该仍然拥有原来的 gcc,因此您至少不需要重新安装。

假设你在cmd.exe下操作,如标签所示,那么在构建失败的提示符下,给出这个命令:

where gcc

它应该打印该命令运行的任何内容的完整路径。因此,检查该文件(例如,使用完整路径运行它)以验证它确实是您的 farewell 程序,然后(以防万一)重命名它。现在应该可以在命令提示符和 IDE 中进行构建,并且您可以删除重命名的文件。

PS。如果您实际使用的是 bash 而不是 cmd.exe,请尝试使用 which gcc 来查找错误的 gcc

【讨论】:

  • 是的,我所做的只是将文件重命名为 gcc,不知何故不知道我是怎么做到的。现在都在工作。感谢您的帮助
  • @MichaelSmith 当您通过单击白色复选标记在此答案的帮助下解决了您的问题时,您应该“接受”此答案。
  • @MichaelSmith 没问题,我个人碰巧喜欢这种看起来像 WTF 的“疯狂”问题,直到找到原因。顺便说一句,在 SO 上说“谢谢”的常用方式是对您认为有用的任何答案和问题进行投票。
  • 试图在那里投票支持你的答案,但显然我需要更好的声誉(“。)就像在现实生活中一样
  • @MichaelSmith 有趣的是,我认为您总是可以对自己的问题的答案进行投票,就像您可以随时评论它们一样。但没关系,我的意思主要是对新用户的一般建议:-)
猜你喜欢
  • 1970-01-01
  • 2016-07-05
  • 2013-07-30
  • 2019-08-17
  • 1970-01-01
  • 1970-01-01
  • 2016-07-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多