构建 glibc 时出错:make/config 文件有什么问题?

Sto*_*aft 5 glibc build gnu-make

我一直在尝试在 Clear Linux 上构建 glibc,这里讨论了之前的问题: How do I build into a specified directory using the "prefix" option of configure?

现在我已经成功运行configure,makefile中似乎有问题:

james@clr ~/Downloads/glibc $ make
Makeconfig:42: *** missing separator.  Stop.
Run Code Online (Sandbox Code Playgroud)

Makeconfig第42行:

objdir must be defined by the build-directory Makefile.
Run Code Online (Sandbox Code Playgroud)

和 nakefile 直到错误点:

ifneq (,)
This makefile requires GNU Make.
endif

all: # Make this the default goal

ifneq "$(origin +included-Makeconfig)" "file"

+included-Makeconfig := yes

ifdef subdir
.. := ../
endif

# $(common-objdir) is the place to put objects and
# such that are not specific to a single subdir.
ifdef objdir
objpfx := $(patsubst %//,%/,$(objdir)/$(subdir)/)
common-objpfx = $(objdir)/
common-objdir = $(objdir)
else
objdir must be defined by the build-directory Makefile.
endif
Run Code Online (Sandbox Code Playgroud)

我有 GNU Make 4.2.1

Mad*_*ist 4

您看到错误是因为此 makefile 认为您的环境错误。您正在运行的 makefile 中的行是故意的语法错误:无论对这些行进行多少编辑都不会将其更改为正确的行,因为它的全部目的是在看到无效配置时强制 make 失败。

它试图告诉您的错误就在文本中:

objdir 必须由构建目录 Makefile 定义。

makefile 检查objdir变量是否已定义,如果没有,则会陷入此无效语法。

我已经有一段时间没有尝试自己构建 glibc,所以我不能确切地说出这意味着什么,但我确信如果你用 Google 搜索该错误消息,你会找​​到一些可以让你继续前进的信息。

遗憾的是这个 makefile 没有使用更可读的方式来指定错误,例如函数$(error ...)(在 1999 年发布的 GNU make 3.78 中添加)。