【问题标题】:When compiling a C program, i get this error: hello: no such file or directory编译 C 程序时,我得到这个错误:你好:没有这样的文件或目录
【发布时间】:2013-07-21 11:46:28
【问题描述】:

我以前编译过其他程序,但由于某种原因,我不能再工作了。我有一个 mac 这是我的代码。它的目的是取三个数字并求平均值。

#include <stdio.h>
int main(){
int first;
int second;
int third;
float average=0.0;
    printf ("This program will find the average of 3 numbers.\n");
    delay(1000);
    printf ("Type the first number.\n");
    scanf ("%d", &first);
    printf ("Type the second number.\n");
    scanf ("%d", &second);
    printf ("Type the third number.\n");
    scanf ("%d", &third);
    average = (first+second+third)/2.0;
    printf ("The average of %d, %d, and %d is %.3f\n", first, second, third, average);
return (0);
}

这些是我已采取的步骤。我把average.c和average.h放在桌面上。我打开终端并输入

cd Desktop 
gcc /Users/reneelion/Desktop/average.c average

然后它说:

average: No such file or directory.

我是编码初学者,不知道该怎么做。

【问题讨论】:

  • 试试gcc -o average average.c。您将平均值作为 input (它不存在)。
  • 第一个 cd 到“你的文件在哪里”然后gcc -Wall average.c -o average
  • (first+second+third)/2.0 ?
  • 你是新人请做:gcc -Wall -pedantic average.c -o average

标签: c macos gcc


【解决方案1】:

我假设您希望输出文件为average?然后使用这个:

gcc average.c -o average

【讨论】:

    【解决方案2】:

    编译器找不到你的文件。你需要做如下(根据你的环境)

    cd  /Users/reneelion/Desktop/
    gcc average.c 
    

    这将给出一个可执行文件(在没有错误的情况下)并且在运行时将给出所需的输出。

    【讨论】:

      【解决方案3】:

      使用cd Desktopgcc /Users/reneelion/Desktop/[filename] 是多余的。

      将目录更改为桌面后,您不再需要编写完整的文件路径。您可以将文件的路径写入当前目录和文件之间的关系。在你的情况下:

      /Users/reneelion> //you begin (most likely) in your user directory
      /Users/reneelion> cd Desktop //change directory to desktop
      /Users/reneelion/Desktop> gcc average.c  //now you are in the desktop folder, 
                                              //no need to rewrite the full path 
                                             //to your file
      

      GCC (GNU Compiler Collection)的使用语法如下:

      gcc [options] [source files] [object files] [-o output file]
      

      [Options]
      您可以使用不同的选项来执行诸如隐藏错误消息和获取调试信息之类的操作。

      [source files]
      是您要编译的文件(或文件)。在你的情况下average.c

      [object files]
      目标文件包含低级指令,并在您编译代码时创建。通过将这些目标文件链接在一起来创建可执行文件。您可能会认出.o 扩展名。
      看: What's an object file in C?

      [-o output file]
      -o 是 GCC 中的一个特殊选项,用于命名已编译文件的输出。在您的情况下,您似乎正在尝试将输出命名为average。如果您不使用此选项,您的程序仍将编译并可以使用默认的a.out 可执行文件运行。

      您输入的内容很可能会被解释为试图将源文件“average.c”与名为“average”的目标文件相结合。由于目前还没有文件对象或以其他方式称为“average”,因此您的呼叫无法正常工作。

      把它们放在一起:

      cd Desktop  //change directory to desktop
      gcc average.c -o average  //compile average.c into an executable called average.
      ./average  //run the executable 
      

      【讨论】:

        猜你喜欢
        • 2021-03-15
        • 1970-01-01
        • 1970-01-01
        • 2015-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-21
        • 2012-04-24
        相关资源
        最近更新 更多