之前我已编译过其他程序,但出于某种原因,我再也无法工作了。我有一个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.
我是编码的初学者,不知道该怎么做。
答案 0 :(得分:8)
我假设您希望输出文件为average
?然后使用:
gcc average.c -o average
答案 1 :(得分:0)
编译器无法找到您的文件。您需要执行以下操作(根据您的环境)
cd /Users/reneelion/Desktop/
gcc average.c
这将给出一个可执行文件(如果没有错误),并且在运行时将提供所需的输出。
答案 2 :(得分:0)
使用cd Desktop
和gcc /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