【问题标题】:*** mixed implicit and normal rules. Stop*** 混合隐式和正常规则。停止
【发布时间】:2017-07-20 07:11:36
【问题描述】:

我需要使用旧版本的 glibc 来编译一些软件(特别是 2.12)。所以,我从https://ftp.gnu.org 下载了glibc 并尝试编译它。但它给了我以下错误:

Makefile:235: *** 混合隐式和普通规则。停下来。

并且,以下是 Makefile 的第 235 行: $(objpfx)stubs ../po/manual.pot $(objpfx)stamp%: 我怎样才能解决这个问题?我在 RHEL7.3 中使用 gcc-4.8.5。

【问题讨论】:

  • GCC 的版本不相关。相关的是 GNU make 的版本。此外,您应该在 Makefile 的第 235 行显示文本。但是,您的 GNU make 版本可能介于 3.82 和 4.0 之间。在 3.82 中,make 解析器被修改为标记语法错误,该错误始终是不允许的,但最初并未被捕获为错误。一些 makefile 包含这种语法。在 GNU make 4.1 中,该语法再次被允许,但带有警告,以便使用旧的损坏的 makefile 的人仍然可以构建。
  • 您要么需要获取较旧(3.82 之前)或较新(4.1 或更新)版本的 GNU make,要么获取已修复此问题的较新版本的 glibc,或者编辑您的glibc makefiles 来避免这个问题。

标签: makefile glibc


【解决方案1】:

来自:

$(objpfx)stubs $../po/manual.pot $(objpfx)stamp%:
        $(make-target-directory)
        touch $@

改为:

$(objpfx)stubs:
        $(make-target-directory)
        touch $@
$../po/manual.pot:
        $(make-target-directory)
        touch $@
$(objpfx)stamp%:
        $(make-target-directory)
        touch $@

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-01
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 2022-01-06
    • 2010-10-20
    相关资源
    最近更新 更多