Build 构建glibc时出错:make/confgure文件有什么问题?
我一直在尝试在Clear Linux上构建glibc,前面的问题在这里讨论: 现在我已成功运行configure,makefile中似乎有问题:Build 构建glibc时出错:make/confgure文件有什么问题?,build,gnu-make,glibc,Build,Gnu Make,Glibc,我一直在尝试在Clear Linux上构建glibc,前面的问题在这里讨论: 现在我已成功运行configure,makefile中似乎有问题: james@clr ~/Downloads/glibc $ make Makeconfig:42: *** missing separator. Stop. Makeconfig的第42行: objdir must be defined by the build-directory Makefile. 和nakefile直到错误点: ifneq
james@clr ~/Downloads/glibc $ make
Makeconfig:42: *** missing separator. Stop.
Makeconfig的第42行:
objdir must be defined by the build-directory Makefile.
和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
我让GNU Make 4.2.1您看到一个错误,因为这个Make文件认为您的环境是错误的。您正在运行的makefile中的行故意是一个语法错误:对这些行进行任何编辑都不会将其更改为正确的行,因为它的全部目的是在看到无效配置时强制make失败 它试图告诉您的错误就在文本中: objdir必须由生成目录Makefile定义 makefile检查
objdir
变量是否已定义,如果未定义,则会使用此无效语法
我已经有很长一段时间没有尝试自己构建glibc了,所以我不能确切地说这意味着什么,但我相信如果你在谷歌上搜索这个错误消息,你会发现一些信息,让你前进
很遗憾,这个makefile没有使用更可读的方式来指定错误,例如$(error…
函数(在1999年发布的GNU make 3.78中添加)。libc禁止从源根目录进行构建。值得阅读安装文件(您也可以在源根目录中找到它):
无法在源目录中编译GNU C库。你必须
在单独的构建目录中构建它。例如,如果你有
在“/src/GNU/glibc VERSION”中解包GNUC库源代码,创建一个
目录“/src/gnu/glibc build”将对象文件放入其中。这
允许在发生错误时删除整个生成目录,这
这是重新开始的最安全的方式,应该一直这样做
在实践中,这意味着您应该在构建目录中运行configure和make(您应该自己创建),例如:
glibc-x.xx/build> ../configure "CFLAGS=-m64 -O2" "CXXFLAGS=-m64" "LDFLAGS=-m64" --prefix=$HOME/glibc-x.xx-bin
glibc-x.xx/build> make all install
您收到的错误消息意味着glibc-x.xx/Makefile需要从某个父Makefile调用,该父Makefile必须是由configure生成的glibc-x.xx/build/Makefile。您绝对不应该用空格替换所有选项卡。你也绝对不应该在每一行的开头放一个标签。您应该只在需要选项卡的地方使用它们,而不要在不需要选项卡的地方使用它们。由于您尚未向我们提供有关您的情况的任何信息,我们无法为您提供帮助。我建议您回到您拥有的第一个文件,如果您仍然看到“缺少分隔符”错误,请在此处发布与该错误相关的行;在上面的第一条错误消息中,它抱怨文件Makeconfig.Post中的第42行(使用正确的SO格式)make报告的有错误的行以及上下文前后的一些行。然后我们可以帮助您了解这些行可能有什么问题。谢谢,我编辑了我的问题以包括这些行,@Thoughtcraft那么您解决了这个问题吗?我也面临着这个问题,无法从这个公认的答案中找到解决方案:)你是对的,似乎objdir被定义为另一个makefile上游中的当前工作目录,而且之前有一些错误导致了这一点,似乎我必须创建另一个问题来解决这些问题。