【问题标题】:I'm starting coding and am stuck on hello world我开始编码并被困在你好世界
【发布时间】:2022-11-10 14:10:18
【问题描述】:

我是新来的编码和做第一个 CS50 课程练习,我们被教导使用 C 编码和做“hello world”活动。我输入代码:

#include <stdio.h>

int main(void)
{
    printf("hello, world\n");
}

当我在终端输入make hello./hello 时,它会显示hello is a directory 而不是执行命令。

我应该怎么办?

【问题讨论】:

  • 我认为您正在使用某种 UNIX。你知道lscat怎么用吗?您能否验证您是否将该代码放入文件中?文件的确切名称是什么?
  • 错误很明显,您在当前目录中已经有一个名为hello 的文件夹,只需将其删除
  • ...在检查以确保那里没有您想要保留的东西之后。
  • @drescherjm 不,make 具有隐式规则,并且可以在没有 Makefile 的情况下工作。
  • 因此,您想要的解决方案可能是cd hello 然后mv ../hello.c . 然后make hello 然后./hello。这是重要的阅读并尝试理解这些命令的输出。我很难相信make 还没有给你一个错误......

标签: c cs50


【解决方案1】:

C 是一种编译语言,所以一旦你编译了代码,它将输出一个可执行文件,除非-o [executable-name] 指定,否则它将被称为a.out。您的 hello world 程序应如下所示:

#include <stdio.h>

int main() {
    printf("hello, world
");
}

不要忘记最后的右括号。要编译此代码,请确保您已安装 GCC 并运行 gcc [program-file-name].c,并将第二个参数替换为 C 文件的名称。编译代码后,您可以看到一个名为a.out 的文件已出现在您的当前目录中。然后您可以运行./a.out 来运行该程序。

我假设您的系统带有 GCC,但如果没有,Google 上有很多资源可以提供帮助,包括 https://gcc.gnu.org/install/

【讨论】:

  • 但是在格式良好的答案和愿意提供帮助方面做得很好。
  • 改写,但补充。谢谢!
  • 我认为 OP 正在使用隐式 GNU make 规则,在这种情况下,这个答案将非常令人困惑......
  • int main(void),(OP 做得很好。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-19
  • 1970-01-01
  • 2015-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多