make目标如下:
target: dep1
$(A)echo $(shell pwd)
$(A)echo $(THIS_DIR)
$(A)$(CPP) $(CPP_FLAGS) ... <-这句报错
这样执行会报错。
但是加上cd后就可以执行不报错。
target: dep1
$(A)echo $(shell pwd)
$(A)echo $(THIS_DIR)
$(A)cd $(THIS_DIR);$(CPP) $(CPP_FLAGS) ...
但是$(A)echo $(shell pwd)和$(A)echo $(THIS_DIR)显示的内容始终是一样的。
这是为什么?
14 个解决方案
#1
报什么错?
$(A)是什么?
把$(A)从$(A)$(CPP) $(CPP_FLAGS) ...里去掉试试
$(A)是什么?
把$(A)从$(A)$(CPP) $(CPP_FLAGS) ...里去掉试试
#2
A=@
去掉也不行。
另外,如果把$(CPP) $(CPP_FLAGS) ...直接在命令行下输入是可以的。
去掉也不行。
另外,如果把$(CPP) $(CPP_FLAGS) ...直接在命令行下输入是可以的。
#3
报什么错,把你的报错信息帖上来
#4
$(THIS_DIR)是什么?是不是一个路径名?
你在上边那两行内使用echo 的作业就是把它回显出来,这当然可以了。
但在第3行内,直接放这样一行路径是什么意思?应该是个命令
@符号是抑制命令的回显,是属于make的标识符。你可以想想,在命令行内直接输入一个路径是什么现象出现。
你在上边那两行内使用echo 的作业就是把它回显出来,这当然可以了。
但在第3行内,直接放这样一行路径是什么意思?应该是个命令
@符号是抑制命令的回显,是属于make的标识符。你可以想想,在命令行内直接输入一个路径是什么现象出现。
#5
$(CPP)是什么?
#6
从他的makefile里看肯定是指示所使用的编译器喽,它后面例子能执行成功跟这个肯定没有关系.可能还是跟当前的makefile工作目录有关系.
#7
改变make当前目录有两种方式
sub_dir=./abc/def
target:
cd $(sub_dir)&&make
target:
make -C$(sub_dir)
sub_dir=./abc/def
target:
cd $(sub_dir)&&make
target:
make -C$(sub_dir)
#8
make -C
#9
$(shell pwd)显示当前路径。
$(THIS_DIR)是一个变量。
既然$(shell pwd)和$(THIS_DIR)内容一样当然THIS_DIR也是当前路径了。
既然当前路径就是$(THIS_DIR)那还要cd干嘛?
$(THIS_DIR)是一个变量。
既然$(shell pwd)和$(THIS_DIR)内容一样当然THIS_DIR也是当前路径了。
既然当前路径就是$(THIS_DIR)那还要cd干嘛?
#10
make命令默认是在当前目录下搜索makefile/Makefile
你当前目录下有makefile?
你当前目录下有makefile?
#11
注意,所给内容均为被makefile包含的文件中的内容,且其它内容均可被顺利执行,就只有执行到这里出错了。
#12
mark
#13
请注意,以上内容均位于被makefile包含的文件中,且在出错之前其它部分编译执行均很顺利。
#14
$(CURDIR)
#1
报什么错?
$(A)是什么?
把$(A)从$(A)$(CPP) $(CPP_FLAGS) ...里去掉试试
$(A)是什么?
把$(A)从$(A)$(CPP) $(CPP_FLAGS) ...里去掉试试
#2
A=@
去掉也不行。
另外,如果把$(CPP) $(CPP_FLAGS) ...直接在命令行下输入是可以的。
去掉也不行。
另外,如果把$(CPP) $(CPP_FLAGS) ...直接在命令行下输入是可以的。
#3
报什么错,把你的报错信息帖上来
#4
$(THIS_DIR)是什么?是不是一个路径名?
你在上边那两行内使用echo 的作业就是把它回显出来,这当然可以了。
但在第3行内,直接放这样一行路径是什么意思?应该是个命令
@符号是抑制命令的回显,是属于make的标识符。你可以想想,在命令行内直接输入一个路径是什么现象出现。
你在上边那两行内使用echo 的作业就是把它回显出来,这当然可以了。
但在第3行内,直接放这样一行路径是什么意思?应该是个命令
@符号是抑制命令的回显,是属于make的标识符。你可以想想,在命令行内直接输入一个路径是什么现象出现。
#5
$(CPP)是什么?
#6
从他的makefile里看肯定是指示所使用的编译器喽,它后面例子能执行成功跟这个肯定没有关系.可能还是跟当前的makefile工作目录有关系.
#7
改变make当前目录有两种方式
sub_dir=./abc/def
target:
cd $(sub_dir)&&make
target:
make -C$(sub_dir)
sub_dir=./abc/def
target:
cd $(sub_dir)&&make
target:
make -C$(sub_dir)
#8
make -C
#9
$(shell pwd)显示当前路径。
$(THIS_DIR)是一个变量。
既然$(shell pwd)和$(THIS_DIR)内容一样当然THIS_DIR也是当前路径了。
既然当前路径就是$(THIS_DIR)那还要cd干嘛?
$(THIS_DIR)是一个变量。
既然$(shell pwd)和$(THIS_DIR)内容一样当然THIS_DIR也是当前路径了。
既然当前路径就是$(THIS_DIR)那还要cd干嘛?
#10
make命令默认是在当前目录下搜索makefile/Makefile
你当前目录下有makefile?
你当前目录下有makefile?
#11
注意,所给内容均为被makefile包含的文件中的内容,且其它内容均可被顺利执行,就只有执行到这里出错了。
#12
mark
#13
请注意,以上内容均位于被makefile包含的文件中,且在出错之前其它部分编译执行均很顺利。
#14
$(CURDIR)