gpt4 book ai didi

调试 GNU make

转载 作者:行者123 更新时间:2023-12-03 05:23:51 25 4
gpt4 key购买 nike

make 中是否有命令行方式来找出目标的哪些先决条件未更新?

最佳答案

make -d

应该为您提供更多足够的信息来调试您的makefile。

请注意:分析输出需要一些时间和精力,但将输出加载到您最喜欢的编辑器中并进行搜索会很有帮助。

如果指定您感兴趣的特定目标,则可以大大减少调试输出量。因此,如果您只对 dodgy 目标感兴趣,而不仅仅是 make -d 可能会产生一百种不同的东西,尝试:

make clean
make -d dodgy

(当然假设您有一个clean目标)。

make --debugmake -d 相同,但您也可以指定:

make --debug=FLAGS

标志可以是:

  • a 用于所有调试(与 make -dmake --debug 相同)。
  • b 用于基本调试。
  • v 用于稍微详细一点的基本调试。
  • i 用于隐式规则。
  • j 用于获取调用信息。
  • m 获取重制 makefile 期间的信息。

看起来 make --debug=b 是满足您需求的最佳选择,如以下记录所示:

pax@paxbox> cat makefile
c:a b
touch c

pax@paxbox> touch a b ; make
touch c

pax@paxbox> make
make: 'c' is up to date.

pax@paxbox> touch a ; make --debug=b
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc. Blah, blah, blah.
Reading makefiles...
Updating goal targets....
Prerequisite 'a' is newer than target 'c'.
Must remake target 'c'.
touch c
Successfully remade target file 'c'.

关于调试 GNU make,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1745939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com