debugging - 如何在目标外部的生成文件中打印文本?
问题描述
例如,我正在尝试测试这是否适用于我的 makefile 序言:
ifneq (,$(shell latexmk --version 2>/dev/null))
echo Works
else
echo Does not Works
endif
all:
do things...
哪个错误:
*** recipe commences before first target. Stop.
那么,如何打印规则之外的东西呢?
Makefile 不允许在规则之外或在result:=$(shell ...)
.
解决方案
在 GNU Make 中有$(info ...)
,$(warning ...)
和$(error ...)
内置函数。请注意,从语法上讲,它们是文本替换,但它们的返回值始终是一个空字符串(除非$(error ...)
它永远不会返回),就像它与$(eval ...)
etc 一样。所以它们几乎可以在任何地方使用。
另一个选项是$(file >/dev/stdout,...)
(在 Windows 下使用“con”)。
推荐阅读
- amazon-web-services - Elastic Beanstalk (EB2) 部署仅托管我的 FullStack 应用程序的后端 API
- swift - AWS Polly - 突出显示特殊字符
- javascript - 如何传递我在数据表中选择的数据进行插入
- python - 要求澄清使用 sorted lambda 对字典进行排序
- c# - 隐藏WPF窗口上的最小化最大化按钮
- electron - 创建补丁版本以修复 MAC OS 的现有电子反应桌面应用程序安装
- python - bidst_mac cx_freeze 不工作,但 build_exe 应用程序工作
- python - 返回用于执行应用程序的别名
- c# - 如何将在数据库中保存为字符串的数字与整数字段进行比较?
- python - 3d 空间中用户之间的相似性(协同过滤)