我的 makefile 中有以下代码:
CONTIKI_PROJECT = blank
UPNP = ..
RT = $(UPNP)/../uJ/BUILDENV/RT/
APPL = $(UPNP)/../uJ/Applications/
CCVT ?= $(UPNP)/../classCvt/classCvt
TOBIN ?= $(UPNP)/../classCvt/tobinfile
CMD = $(TOBIN) -c $(CCVT)
upload:
CLASSPATH=$(RT)/real:$(RT)fake:$(RT)/fake/uj javac $(RT)/real/java/lang/*.java
CLASSPATH=$(RT)/real:$(RT)/fake:$(RT)/fake/uj javac $(APPL)/UJ*.java
CLASSPATH=$(RT)/real:$(RT)/fake:$(RT)/fake/uj \
javac $(APPL)/UJ*.java $(APPL)/$(CLASS).java
find $(APPL)/ -iname "$(CLASS).class" >> temp_files
$(CMD) $(APPL)/$(CLASS).class >$(CLASS).raw_ujc
正如预期的那样,“.raw_ujc”文件出现在 makefile 的目录中,并且是一个简单的文本文件。 tobinfile 是一个执行 printf 操作的 .c 文件,其输出被放入 .raw_ujc 中。 然而,类似地,它在执行 printf 时生成一个二进制文件(通过执行 fwrite(&v,sizeof(v),1,rawf) ,其中 v 是字节,rawf 是具有特定名称的文件)。 这会在 $(APPL) 文件夹中生成二进制文件。 我想将此文件移动到 makefile 的文件夹中,.raw_ujc 文件也位于该文件夹中。
我一直不知道如何做到这一点。有什么建议吗?
最佳答案
您正在寻找的答案是不是很简单:
$(CMD) $(APPL)/$(CLASS).class >$(CLASS).raw_ujc
-mv $(APPL)/rawf .
执行$(CMD)
后,这会将文件rawf
从$(APPL)
目录移动到当前目录。 -
前缀会忽略移动中的错误(例如,如果 rawf
文件不存在),并且可能不是您想要的。
关于c - 使用 makefile 移动现有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39748682/