发生错误时如何同时在makefile中退出并记录文件中的数据

罗汉·G

生成文件

RUN_EXE = xyz.exe
SOME_DIR_PATH = ../folder1/

ifdef $(MAKECMDGOALS)
   ifeq ($(MAKECMDGOALS), "target_1")
      ABC = status.log
      ARGS_TO_EXE = "argc1"
   endif
   ifeq ($(MAKECMDGOALS), "target_1")
      ABC = file2.txt
      ARGS_TO_EXE = "argc2"
   endif
else
   ABC = status.log file2.txt
   ARGS_TO_EXE = ""
endif

 # phony define
.PHONY = default target_1 target_2 

# if target not mention run default
default: $(ABC)


target_1 target_2:$(ABC)

$(ABC):
      $(CD) $(SOME_DIR_PATH) && ( $(RUN_EXE) $(ARGS_TO_EXE) || (exit 1;)) 2>&1 | tee -a ../status.log; \

我有两个使用第一个生成文件的生成文件,我正在调用此生成文件。如果出现错误,则应成功返回第一个makefile。

为了测试目的,我在可执行文件中创建了一个错误,我试图以不存在的读取模式打开文件。所以我的可执行文件将通过错误,它将出来

当我给

make target_1

错误:打开文件时出错(使用c printf函数,文件中将包含相同的内容)

make target_2 

错误:打开文件时出错(使用c printf函数,文件中将包含相同的内容)

但是这里出现问题

make

错误:打开文件时出错(使用c printf函数,并且文件中将包含该错误)。错误:打开文件时出错(使用c printf函数,并且文件中将包含该错误)。

它应在成功打印status.log文件后首次打印后退出,但不会发生。AS $(ABC)包含两个目标status.log和file2.txt,因此,在第一次运行时,它尝试构建status.log,在第二次尝试中,它尝试构建file2.txt。

但是我想如果第一次运行中有错误,它应该返回第一个makefile,并在status.log中记录错误,并且不应该为file2.txt运行,并使用出口1退出

马克西姆·埃格鲁什金

如果出现错误,则应成功返回第一个makefile。

您的第一个makefile可以使用-选项调用该makefile ,例如

run_submake:
    -$(MAKE) <arguments>

这样,来自子make的错误将被忽略。


您的规则似乎不正确。配方必须产生一个文件(或多个文件)或成为假冒目标。例如,应该有生产status.log生产的规则file2.txt您的makefile应该如下所示:

RUN_EXE := xyz.exe
SOME_DIR_PATH := ../folder1/
ARGS_TO_EXE := "argc1"

all : status.log file2.txt # The default target.
target_1: status.log
target_2: file2.txt

.PHONY: all target_1 target_2

status.log:
    ${CD} ${SOME_DIR_PATH} && ( $(RUN_EXE) $(ARGS_TO_EXE) | tee -a $@; exit $${PIPESTATUS[0]} )

file2.txt:
    # Add a recipe to produce file2.txt

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从网站抓取数据时发生错误时如何停止python脚本退出

来自分类Dev

如何运行makefile,使其不会在错误时退出并继续编译其余文件?

来自分类Dev

在python中捕获错误时如何使异常发生异常?

来自分类Dev

发生错误时更改jwplayer中的视频

来自分类Dev

如何在失败时退出多行 shell 脚本,并将错误流记录到文件中?

来自分类Dev

在python3中发生错误时询问输入

来自分类Dev

gnu make:for循环make中发生错误时如何停止和退出

来自分类Dev

gnu make:for循环make中发生错误时如何停止和退出

来自分类Dev

如何知道动态内容中的CSS错误发生在哪里或如何在CSS错误时停止脚本

来自分类Dev

发生错误时还原原始文件

来自分类Dev

出现错误时如何退出循环

来自分类Dev

Shiny中数据库错误时的错误警报

来自分类Dev

crontab文件中的错误时间错误,无法安装

来自分类Dev

出现唯一字段错误时如何在Django中更新数据

来自分类Dev

Pycharm调试:发生错误时,程序在本地退出,但在远程上可以查看变量。如何在本地激活它?

来自分类Dev

当php中的jsone_decode但JSON数据实际上不包含任何语法错误时,就会发生JSON语法错误

来自分类Dev

如何使Makefile中的错误静音?

来自分类Dev

验证node.js中的请求并在出现错误时退出

来自分类Dev

如何从终端中包含的文件中退出/退出

来自分类Dev

如何在生成的 apk 文件中记录错误

来自分类Dev

YII2中发生错误时重定向到404

来自分类Dev

表单字段,发生错误时保留输入数据

来自分类Dev

如何在日志记录库中显示确切的行号(发生错误的位置)

来自分类Dev

如何在Alertbox中显示“已记录已存在”或“发生错误”之类的消息

来自分类Dev

在发生JavaScript错误时查找实际的源文件行号?

来自分类Dev

如何使Armeria在出现“地址已在使用”错误时退出?

来自分类Dev

处理数组中的数据时发生错误

来自分类Dev

处理数组中的数据时发生错误

来自分类Dev

Makefile中的错误,编译多个C文件

Related 相关文章

  1. 1

    从网站抓取数据时发生错误时如何停止python脚本退出

  2. 2

    如何运行makefile,使其不会在错误时退出并继续编译其余文件?

  3. 3

    在python中捕获错误时如何使异常发生异常?

  4. 4

    发生错误时更改jwplayer中的视频

  5. 5

    如何在失败时退出多行 shell 脚本,并将错误流记录到文件中?

  6. 6

    在python3中发生错误时询问输入

  7. 7

    gnu make:for循环make中发生错误时如何停止和退出

  8. 8

    gnu make:for循环make中发生错误时如何停止和退出

  9. 9

    如何知道动态内容中的CSS错误发生在哪里或如何在CSS错误时停止脚本

  10. 10

    发生错误时还原原始文件

  11. 11

    出现错误时如何退出循环

  12. 12

    Shiny中数据库错误时的错误警报

  13. 13

    crontab文件中的错误时间错误,无法安装

  14. 14

    出现唯一字段错误时如何在Django中更新数据

  15. 15

    Pycharm调试:发生错误时,程序在本地退出,但在远程上可以查看变量。如何在本地激活它?

  16. 16

    当php中的jsone_decode但JSON数据实际上不包含任何语法错误时,就会发生JSON语法错误

  17. 17

    如何使Makefile中的错误静音?

  18. 18

    验证node.js中的请求并在出现错误时退出

  19. 19

    如何从终端中包含的文件中退出/退出

  20. 20

    如何在生成的 apk 文件中记录错误

  21. 21

    YII2中发生错误时重定向到404

  22. 22

    表单字段,发生错误时保留输入数据

  23. 23

    如何在日志记录库中显示确切的行号(发生错误的位置)

  24. 24

    如何在Alertbox中显示“已记录已存在”或“发生错误”之类的消息

  25. 25

    在发生JavaScript错误时查找实际的源文件行号?

  26. 26

    如何使Armeria在出现“地址已在使用”错误时退出?

  27. 27

    处理数组中的数据时发生错误

  28. 28

    处理数组中的数据时发生错误

  29. 29

    Makefile中的错误,编译多个C文件

热门标签

归档