【发布时间】: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 来避免这个问题。