c - 使用 makefile 移动现有文件

标签 c makefile

我的 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/

相关文章:

nginx - Nginx-src/core/ngx_sha1.h :19:17: no such file or directory

makefile - $ +在makefile中

c - 链接列表和大小为 4 的无效读取

cuda:如何将主机数据复制到 3D cuda 数组并返回

php - 在 PHP 中读取二进制文件

c - .config 文件中定义的预处理器宏在 c 文件中不可见

linux - 使用 Linux 的 POSIX 功能对程序进行开发测试

c - C语言中 'static void *'是什么意思?

c - 结构损坏堆的可用内存

makefile - Makefile 规则定义中的分号