Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在makefile中运行makeall时出错_Bash_Shell - Fatal编程技术网

Bash 在makefile中运行makeall时出错

Bash 在makefile中运行makeall时出错,bash,shell,Bash,Shell,生成文件: all: my1 my2 my3 my4 s2: s1 tr "1" "2" < s1 > s2 chmod u+x s2 s3: s1 tr "1" "4" < s1 > s3 chmod u+x s3 prog.cpp : i1 i2 i3 cat i1 > prog.cpp cat i1 >> prog.cpp cat i3 >> prog.cpp prog2.c

生成文件:

all: my1 my2 my3 my4
s2: s1
    tr "1" "2" < s1 > s2
    chmod u+x s2
s3: s1
    tr "1" "4" < s1 > s3
    chmod u+x s3

prog.cpp : i1 i2 i3
    cat i1 >  prog.cpp
    cat i1 >> prog.cpp
    cat i3 >> prog.cpp

prog2.cpp: prog1.cpp
    tr "1" "2" < prog1.cpp > prog2.cpp

prog3.cpp: prog1.cpp
    tr "1" "3" < prog1.cpp > prog2.cpp

prog4.cpp: prog1.cpp
    tr "1" "4" < prog1.cpp > temp
    sed 's/READY/NOT READY/' temp > prog4.cpp

prog1.o: prog1.cpp
    g++ -c prog1.cpp
prog2.o: prog2.cpp
    g++ -c prog2.cpp
prog3.o: prog3.cpp
    g++ -c prog3.cpp
prog4.o: prog4.cpp
    g++ -c prog4.cpp

my1: prog.cpp
    s1
my2: prog.cpp
    s2
my3: prog.cpp prog1.o prog2.o prog3.o prog4.o
    g++ -o prog prog.cpp -D_d3 prog1.o prog2.o prog3.o prog4.o

my4: prog.cpp   
    s3

clean: 
all:my1 my2 my3 my4
s2:s1
tr“1”“2”s2
chmodu+xs2
s3:s1
tr“1”“4”s3
chmodu+xs3
程序cpp:i1 i2 i3
类别i1>prog.cpp
类别i1>>程序cpp
类别i3>>程序cpp
prog2.cpp:prog1.cpp
tr“1”2prog2.cpp
prog3.cpp:prog1.cpp
tr“1”3prog2.cpp
prog4.cpp:prog1.cpp
tr“1”“4”temp
sed's/READY/NOT READY/'temp>prog4.cpp
prog1.o:prog1.cpp
g++-c prog1.cpp
prog2.o:prog2.cpp
g++-c prog2.cpp
prog3.o:prog3.cpp
g++-c prog3.cpp
prog4.o:prog4.cpp
g++-c prog4.cpp
my1:prog.cpp
s1
my2:prog.cpp
s2
my3:prog.cpp prog1.o prog2.o prog3.o prog4.o
g++-o prog prog.cpp-D_d3 prog1.o prog2.o prog3.o prog4.o
my4:prog.cpp
s3
清洁:

当我尝试运行makeall命令时,它会给出错误。我参加这个项目已经两个多小时了,不知道为什么!有什么帮助/想法吗?
i1 i2 i3是简单的文本文件,s1是bash脚本。

可能
不在
路径中。您可以将
添加到
路径
,或在makefile中调用
/s1

错误消息显示
s1:Command not found
。我在make文件中没有看到任何创建
s1
文件的内容。这应该是在您的项目目录中,还是在您的路径中。或者您的make文件中缺少一个步骤,该步骤将创建
s1
对象。(自从我在
make
上做了很多年之后,我已经忘记了一个基本的make tenent,而这整个评论都是错误的)。祝你好运。@Sheller我的目录中的最后一个文件是s1(在prog1.cpp下面)。我只是假设make在需要时会在目录中查找s1。我应该在makefile中调用s1吗(如何?)?对不起,我错过了。(我总是对我的目录列表w
ls-ltr
进行排序,以便在底部查看最新创建的文件。(这可能对您有所帮助)。奇怪的是你收到了错误消息。您的makefile中是否有任何
cd
cmd?否则我就没有主意了。对不起,祝你好运。@Shelleter没有,没有cd CMD。另外,我在这里使用C++编译器来实现C++文件。我必须安装gcc才能工作吗?这可能是原因吗?