1)如果我通过gcc -o file1 file1.c && gcc file2.c -lm -o file2然后在./file1 someArgs ./file2 someArgs上在终端上键入每个命令,则程序可以很好地工作

2)如果我在Terminal中输入,也可以工作:make rst和res

3)在终端中键入make不能正常工作

生成文件:

all:
    check

default:
    check

clean:
    rm -rf file1 file2

rst:
    gcc -o file1 file1.c && gcc file2.c -lm -o file2

res:
    ./file1 someArgs ./file2 someArgs

check:
    make clean
    make rst
    make res

还尝试了:
all:
    check

default:
    check

clean:
    rm -rf file1 file2

rst:
    gcc -o file1 file1.c && gcc file2.c -lm -o file2

res:
    ./file1 someArgs ./file2 someArgs

check:
    clean
    rst
    res

以及其他一些带有或不带有make的组合。所有相同的错误:
make: check: Command not found
Makefile:2: recipe for target 'all' failed
make: *** [all] Error 127

最佳答案

第一个目标all试图运行名为check的命令(目标default也是)。我认为您希望make命令的行为与make check命令相同,并在Makefile中执行名为check的目标的操作。在这种情况下,将其添加为如下所示的依赖项:

all: check

default: check

clean:
    rm -rf file1 file2

rst:
    gcc -o file1 file1.c && gcc file2.c -lm -o file2

res:
    ./file1 someArgs ./file2 someArgs

check:
    make clean
    make rst
    make res

关于c - 目标 'all'的配方在Ubuntu 15.10 64位上失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35233128/

10-15 02:21
查看更多