第一天

第一天

第一天

我遇到了一些错误,构建失败了,说存在一些冲突。因此,我相信无法制作 .o 文件,然后在链接过程中导致致命错误,有人有一步一步的故障排除提示吗?

我已经成功地在 Red Hat 6 的全新安装上做到了这一点,所以我怀疑有人更新了内核但没有更新内核库。需要一些关于我应该在哪里检查的提示

我输入 rpm -qa并显示有 2 个内核,尝试启动到旧内核并编译 LiS,但没有帮助。

我将我的问题分解如下:

  1. 如何检查内核库与内核版本是否匹配?
    想法:dlevel、内核、gcc、glib、glibc ...
  2. 是否有解决构建问题的一般步骤,例如检查清单?所以你可以一项一项地勾选。 LiS 安装确实提供了几个库的最低级别要求,我确信我满足了所有这些要求,现在我怀疑我已经过了补丁。
  3. 我可以只降低文件版本吗?所以我只是让每个库都满足要求?并且100%兼容。

第 2 天的进展

根据@schaiba 的一些提示,我研究了如何在编译过程中进行日志记录。

而在打入构建包后,跟踪到第二个文件夹中的构建strconf,在cc编译中添加--verbose,得到以下消息:
忽略冲突的库 /usr/lib64/libc.so,它是一个小文件,所以我尝试用vi打开它,因此发现它是一个文本文件,其中有类似的语句OUTPUT FORMAT (elf32-i386),这对我来说显然是不正确的,因为 lib64 应该是 x86_64 。
然后,我决定通过以下方式检查 libc.so 来自哪里:

rpm -qf libc.so  

从中发现它在 glibc-devel-....,我得到了一个 Red hat 6.4 存储库,正在做

yum update glibc-devel

然后,调皮的 libc.so 就变成了OUTPUT FORMAT(elf64-x86-64)strconf 模块编译。我完成了构建。

但是,我现在还有其他问题。我仍然收到忽略冲突 libc.so 警告,并且我构建的 LiS 实际上被另一个应用程序使用,并且该应用程序似乎存在一些问题。

有什么建议 ?

对于另一项关于互联网的研究,LiS包是32位原生的,因此我猜它可能有部分代码需要在32位下编译,因此出现了2个新问题,

  1. 如何修改构建文件以便它可以使用相同库的两个版本?

  2. 有没有办法让2个版本的devel在linux系统上共存?更准确地说,是 /usr/lib64/libc.so 的 2 个版本

答案1

这是一个盲目的尝试,但由于 LiS 看起来它涉及一个内核模块(http://www.gcom.com/home/linux/lis/index.html),您可能需要内核开发包。

所以尝试以 root 身份运行它:

yum -y install kernel-devel kernel-headers

现在会建吗?

相关内容