如何在ubuntu中运行makefile

kjs*_*kjs 4 bash ubuntu makefile

有两个简单的.c文件add.c和hello.c.这是我的makefile-

all:  add.exe hello.exe

add.exe: add.o

    gcc -o add.exe add.o



hello.exe: hello.o

    gcc -o hello.exe hello.o



add.o: add.c 

    gcc -c add.c



hello.o: hello.c 

    gcc -c hello.c
Run Code Online (Sandbox Code Playgroud)

make终端上键入它显示所有这四个命令,但当我尝试使用./all它运行它说

bash: ./all: No such file or directory. 
Run Code Online (Sandbox Code Playgroud)

./hello.exe./add.exe工作正常.

当我在朋友的电脑上输入./all时,它会显示正确的输出.

在此输入图像描述

Phi*_*ing 7

你朋友的电脑正在做一些奇怪的事情,从你的问题来看,他们所做的事情并不清楚.您的电脑正常运作.

调用make all将编译所有内容,但它实际上并不会调用程序all.它只编译两个程序:hello.exeadd.exe.

所以调用./all应该失败,因为这要求运行一个all不存在的程序.

您的朋友很可能已经为自己编写了一个名为"all"的程序或脚本.您需要询问您的朋友该脚本/程序的功能以及执行方式.

编辑

要查看您的朋友已经完成了什么,请在您的朋友电脑上打开一个终端(如屏幕截图中的那个)并输入命令

ls -lh
Run Code Online (Sandbox Code Playgroud)

这将列出该目录中的所有文件.寻找一个名为"全部"的人.它可能看起来像这样(带有"全部"一词为绿色):

-rwxr-----  1 appy appy 67 Oct 23 15:05 all
Run Code Online (Sandbox Code Playgroud)

假设在那里你可以通过输入来查看它的内容

cat ./all
Run Code Online (Sandbox Code Playgroud)

要让您的朋友像朋友一样工作,请创建具有相同内容的类似文件.要使其可运行,您可能需要更改文件权限:

chmod u+x all
Run Code Online (Sandbox Code Playgroud)