[问题] Makefile赋值问题

楼主: Windycelesti (云の狐)   2021-10-21 17:50:13
开发平台(Platform): (Ex: Win10, Linux, ...)
Linux
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
Makefile
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
Nope
问题(Question):
根目录底下刚开始有的档案
Makefile
Neko.bin
FUNCTION_0.txt
FUNCTION_1.txt
FUNCTION_2.txt
FUNCTION_3.txt
依照生出来的Cat.bin去决定我要把哪个FUNCTION给送出去
喂入的资料(Input):
直接执行make Makefile all
预期的正确结果(Expected Output):
原本的流程, Cat.bin是在这个Makefile才生出来的玩意儿
这里为了模拟, 所以多做了cp ./Neko.bin ./Cat.bin的动作, 然后拿Cat.bin做计算
TT的值预期会生出0~3随机数字(因为每次执行, Neko.bin的size都会改变)
预期在每次计算完Cat.bin的size后
选择对应的FUNCTION_$(1).txt送到其他资料夹去.(在此单纯用cp而已)
错误结果(Wrong Output):
all 的第四行目前没办法正常取出TT的值带入PATH的$(1)
曾经用过define去定义expr `du -b ./Cat.bin|cut -f1` % 4
想当然而程式看不懂
cp ./FUNCTIONexpr `du -b ./Neko_tmp.bin|cut -f1` % 4.txt ./YAAAAA.GG
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
#define TestDef
#expr `du -b ./Cat.bin|cut -f1` % 4
#endef
PATH=./FUNCTION_$(1).txt
all:
cp ./Neko.bin ./Cat.bin
expr `du -b ./Cat.bin|cut -f1` % 4 > TT
cat TT
# cp $(call PATH, $(call TestDef)) ./ YAAAAAA.GG
cp $(call PATH, echo`cat TT`) ./YAAAAA.GG
rm Cat.bin TT
echo "TEST END....."
如果有其他问题麻烦告知, 感谢.
另外想问问, 有没有可以模拟Makefile的模拟网页...(囧
感谢C_and_CPP版
作者: closer76 (克楼瑟)   2021-10-21 19:39:00
总觉得你这些事情不需要用make来做...写 shell script会不会比较快?如果你真的需要makefile帮你产生cat.bin,也可以剩下的动作写在shell script里,然后makefile就单纯call那个script 就好。不需要所有的事都用makefile完成。
作者: Schottky (顺风相送)   2021-10-21 20:25:00
同意一楼,你要做的事完全没有使用到 Makefile 的机能把 all: 里面的指令全部放进 shell script 不就解决了?Makefile 不是不能做到,但很容易让你的脑筋打结

Links booklink

Contact Us: admin [ a t ] ucptt.com