编译C程序时,我收到此错误:hello:没有这样的文件或目录

时间:2013-07-22 16:26:11

标签: c macos gcc

之前我已编译过其他程序,但出于某种原因,我再也无法工作了。我有一个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.

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

3 个答案:

答案 0 :(得分:8)

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

gcc average.c -o average

答案 1 :(得分:0)

编译器无法找到您的文件。您需要执行以下操作(根据您的环境)

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

这将给出一个可执行文件(如果没有错误),并且在运行时将提供所需的输出。

答案 2 :(得分:0)

使用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