Makefile 规则错误:*** 混合隐式规则和普通规则

2024-03-23

在内核Makefile中

# Modules                                                                                                                                                                               
/ %/: prepare scripts FORCE
    $(cmd_crmodverdir)
    $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
    $(build)=$(build-dir)
%.ko: prepare scripts FORCE
    $(cmd_crmodverdir)
    $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1)   \
    $(build)=$(build-dir) $(@:.ko=.o)
    $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost

导致错误Makefile 混合了隐式规则和普通规则。(到提供的代码的第一个字符串)

我认为有问题/ %/语法,我该如何修复它?

到目前为止,我正在考虑以这种方式分离规则:

# Modules                                                                                                                                                                               
/: prepare scripts FORCE
    $(cmd_crmodverdir)
    $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
    $(build)=$(build-dir)
%/: prepare scripts FORCE
    $(cmd_crmodverdir)
    $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
    $(build)=$(build-dir)
%.ko: prepare scripts FORCE
    $(cmd_crmodverdir)
    $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1)   \
    $(build)=$(build-dir) $(@:.ko=.o)
    $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost

但这对我来说很困惑。


你觉得怎么样/ %/规则就是做(除了让你感到困惑和make- 和我)?您想通过%/ bit?

您可以在冒号左侧有两个(或更多)目标,但它们都需要小于百分比。

prog1 prog2: something
    $(CC) -o $@ [email protected] /cdn-cgi/l/email-protection ${LIBRARIES}

The %元字符不能与没有任何规则的规则一起使用%在其中,但是make正在翻译:

/ %/:

类似于prog1 prog2示例,但其中一个目标有%另一个则不然,并且您不能将它们混淆。这/规则是显式规则;它似乎是有关如何更新系统根目录的说明。这%/是隐含规则;它可能正在做一些与更新目录相关的事情。


从评论中复制一些材料:

DIRECTORY_BUILD_RULES = \
    $(cmd_crmodverdir); \
    $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) $(build)=$(build-dir)

/:  prepare scripts FORCE; $(DIRECTORY_BUILD_RULES)

%/: prepare scripts FORCE; $(DIRECTORY_BUILD_RULES)

这个符号应该有效(这就是我在评论中使用它的原因),但是我会在makefile is:

DIRECTORY_DEPENDENCIES = prepare scripts FORCE
DIRECTORY_BUILD_RULES = \
    $(cmd_crmodverdir); \
    $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) $(build)=$(build-dir)

/:  $(DIRECTORY_DEPENDENCIES)
    $(DIRECTORY_BUILD_RULES)

%/: $(DIRECTORY_DEPENDENCIES)
    $(DIRECTORY_BUILD_RULES)

如果这仍然引起问题,请查看第一个(/:)规则确实如此。你确定需要吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Makefile 规则错误:*** 混合隐式规则和普通规则 的相关文章

随机推荐

  • 熊猫合并 101

    我怎样才能执行 INNER LEFT RIGHT FULL OUTER JOIN和熊猫 合并后如何为缺失的行添加 NaN 合并后如何摆脱 NaN 我可以合并索引吗 如何合并多个 DataFrame 与 pandas 交叉连接 merge j
  • 动画 UIProgressView 的变化

    是否可以动画化 a 的变化UIProgressView以便显示能够平滑地移动到新值 有点像 NSProgressIndicator 那样 如果您对此感兴趣 请填写错误报告 Duplicate 5883058 Title UIProgress
  • 在 Ember.JS ember-cli 应用程序中包含引导库的推荐方法

    我正在尝试在当前的 ember cli 项目中正确安装 Twitter Bootstrap 我确实用 Bower 安装了 bootstrap bower install save bootstrap 现在库已下载到 vendor boots
  • 如何使用AES解密使用openssl命令加密的Java文件?

    我需要使用以下命令在 JAVA 中解密在 UNIX 中加密的文件 openssl aes 256 cbc a salt in password txt out password txt enc mypass mypass 我必须在 java
  • 如何从 JavaScript 中的字符串中删除单词数组?

    我有一个可以从字符串中删除单词的函数 这是 var removeFromString function oldStr fullStr return fullStr split oldStr join 我这样使用它 console log r
  • Maven 部署:即使工件已经存在也强制部署

    我正在构建一个项目 它由几个 有时不相关的 模块和一些更多的非标准 java 模块 使用 ANT 构建 组成 每个 Maven 模块在完成后都会部署到发布存储库 如果构建在中间失败 我可能已经部署了一些模块 因此如果我尝试重建 新的部署尝试
  • 退出和退出有什么区别!在红宝石中?

    退出和退出有什么区别 在红宝石中 几件事 退出处理程序以 exit 形式运行 但不是 exit 这意味着分配给 清理 的任何代码都不会使用 退出 来运行 退出 中的 退出状态 默认设置为 false 形式 而在 退出 形式中则为真 退出状态
  • 使用 xlrd 时读取包含公式的单元格值会返回 0.0

    我尝试读取单元格值 例如 Excel 工作表中的 E5 和 E5 包含一个公式 A29 A2 我使用以下代码 它返回 0 00 而不是实际值1 440408 有办法解决这个问题吗 我想打印正确的值 请在这件事上给予我帮助 谢谢 book x
  • jQuery 在 Chrome 和 Mac OS 上停止运行

    看看这个小提琴 http jsfiddle net mattball nWWSa http jsfiddle net mattball nWWSa var lis ul innerfade gt li function fadeThemOu
  • 适用于商品 Linux 存储场的最佳分布式文件系统 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有很多闲置的英特尔 Linux 服务器 数百台 并且希望将它们用于 Web 托管和文件共享环境中的分布式文件系统 这不适用于 HPC 应用程序
  • 如何按顺序获取int中的每个数字?

    我有一个整数 int iNums 12476 我想从中获取每个数字作为整数 就像是 foreach iNum in iNums printf i iNum 所以输出将是 1 2 4 7 6 但我需要每个数字作为int not as char
  • 在类中找不到 main(String[]) 方法

    我收到以下错误 在类中找不到 main String 方法 import java util class Coor int x y w Coor int x int y int w this x x this y y this w w cl
  • gtkmm 的 CMake 错误

    我正在使用 Debian 8 并安装了 libgtkmm 3 0 以及 dev 现在我有一个使用 gtkmm 的非常简单的程序 基本上是一个 Hello World 主要 cpp include include BrowserWindow
  • 如何用许多随机数填充 MySQL 表?

    我要问一个已经被问过的问题very https stackoverflow com questions 9505930 populate mysql table with random data in python抽象的terms http
  • 无法从“字符串”转换为“System.IFormatProvider”

    这段代码给了我这个错误 var n 9 7 2014 8 22 35 AM var m n ToString yyyy MM dd T HH mm ssZ 但这段代码可以正常工作 并以正确的格式返回日期 var n DateTime Now
  • 如何正确使用实时优先级

    我的问题可能并不是真正关于实时处理 但话又说回来 它可能是 我的应用程序有几个比 GUI 重要得多的线程 但是 我确实希望 GUI 至少可用 我不希望它始终锁定 并且我确实想根据我正在执行的处理结果更新屏幕 目前 我的所有必需项目都隔离在单
  • 随机森林回归中的样本大小

    如果理解正确 当计算随机森林估计量时 通常会应用引导法 这意味着仅使用来自样本 i 的数据构建树 i 并通过替换选择 我想知道sklearn的样本大小是多少随机森林回归器 http scikit learn org stable modul
  • R 错误:影子图形设备错误

    是的 我知道上述错误有很多线索 但 至少我 无法找到解决方案 因此 RStudio 在尝试绘制某些内容时出现以下错误 Error in RStudioGD Shadow graphics device error r error 4 R c
  • 加载生成的纹理数据在 Libgdx/Lwjgl 中是不确定的

    数据格式如下 final int width 256 final int height 256 final float data new float width height 4 FloatBuffer dataBuf int textur
  • Makefile 规则错误:*** 混合隐式规则和普通规则

    在内核Makefile中 Modules prepare scripts FORCE cmd crmodverdir Q MAKE KBUILD MODULES if CONFIG MODULES 1 build build dir ko