当Make抛出特定错误时,我应该从哪里开始调试



我对Make的了解不多。有人告诉我,你在make之后放的所有东西(不包含"-"(都是目标。我的一个构建过程失败了。首先有一条线路

make path/to/configuration_file

configuration_file不是目标。它是一个自动生成的配置文件,埋在形式的目录结构("路径/到"(中

#
# Boot Configuration
#
#
# DRAM Component
#
CONFIG_DRAM_TYPE_LPDDR4=y
# CONFIG_DRAM_TYPE_DDR4 is not set
CONFIG_DDR_SIZE=0x80000000
#
# Boot Device
#
# CONFIG_ENABLE_EMMC_BOOT is not set
# CONFIG_ENABLE_NAND_BOOT is not set
CONFIG_ENABLE_SPINAND_BOOT=y
# CONFIG_ENABLE_SPINOR_BOOT is not set
CONFIG_EMMC_ACCESS_8BIT=y
# CONFIG_EMMC_ACCESS_4BIT is not set
# CONFIG_EMMC_ACCESS_1BIT is not set

所以我不明白这怎么会成为目标。作为参考,当我运行make时,有一个Makefile,但这个Makefile没有引用这个文件。

尽管如此,这条线路还是很顺利。说它失败的路径

make diags

并且我已经证实;diags";目标

我会在这里打印错误文件,可以给我们更多的信息正在发生的

GEN cortex_a/output/Makefile
Init diag test "orc_scheduler" ...
remoteconfig: Failed to generate configure in cortex_a/soc/visio/tests/orc_scheduler!
Makefile:11 recipe for target 'orc_scheduler-init' failed
make[10]: *** [orc_scheduler-init] Error 25

至少我想知道的是如何解释这个错误消息。我不知道";11〃;或";10〃;或";25〃;指

make从根本上说是一种可以自动按正确顺序运行命令的工具,因此您不必自己键入命令。因此,运行的所有命令都是可以在shell提示符中键入的命令。这些命令生成的所有错误都与您自己键入命令时看到的错误相同。因此,为了理解这些错误而查看make是错误的:无论调用了什么命令,都必须查看文档。

A";目标";只是一个让你知道如何构建的文件。事实上,当您键入make <somefile>时,它并没有给您一个错误,即它不知道如何构建<somefile>,这意味着就您的makefile而言,<somefile>是一个目标。

错误消息Makefile:11:只是指文件名Makefile的第11行,在这里可以找到使运行失败的命令。但这可能无法帮助您解决命令失败的原因问题(除非问题是您使用错误的参数调用了它,并且需要调整makefile以指定不同的参数(。

失败的命令生成消息:

remoteconfig: Failed to generate configure in cortex_a/soc/visio/tests/orc_scheduler!

我不知道这意味着什么,但这与制作无关。您需要了解这个remoteconfig命令是什么、它的作用以及它失败的原因。不幸的是,它没有显示任何更好的错误消息来解释为什么它失败了;生成配置";,但再说一遍,我们对此无能为力。

如果你想了解更多关于make的信息,你可以看看GNU make手册(注意,GNU make只是make的一个实现;还有其他实现,它们基本相同,但细节不同(。

相关内容

最新更新