【问题标题】:Glibc configuration flags to reuse the new installed glibcGlibc 配置标志以重用新安装的 glibc
【发布时间】:2017-02-28 07:26:04
【问题描述】:

我有一个关于如何在不同机器上使用新建 GLIBC 的问题。

我更改了 malloc 代码并编译了本地版本的 glibc 来自:/home/1/glibc/puzzlebox/

Configure:**/eglibc-2.15/configure --prefix=/home/1/glibc/puzzlebox/lib32/ --host=i686-linux-gnu --build=i686-linux-gnu CC="gcc -m32 -g -ggdb -DMALLOC_DEBUG=1 -U__i686" CXX="g++ -m32 -g -ggdb -DMALLOC_DEBUG=1 -U __i686" CFLAGS="-O2 -march=i686 -U_FORTIFY_SOURCE -fno-stack-protector" CXXFLAGS="-O2 -march=i686 -U_FORTIFY_SOURCE -fno-stack-protector"

Make and install**: make clean;make;make install

由于我的前缀是 /home/1/glibc/puzzlebox/lib32/ ,因此在 /home/1/glibc/puzzlebox/lib32/ 下创建了以下目录

bin 等包含 lib libexec sbin 共享

现在我将库文件 /home/1/glibc/puzzlebox/lib32/lib/* 复制到另一个存储库 /home/2/glibc/puzzlebox/lib32/lib

并指出我的 gcc 使用 /home/2/glibc/puzzlebox/lib32/lib/* 文件中的库文件

但是从

编译时出现以下错误
ld: cannot find /home/1/glibc/puzzlebox/lib32/lib/libc.so.6 inside
ld: cannot find /home/1/glibc/puzzlebox/lib32/lib/libc_nonshared.a inside
ld: cannot find /home/1/glibc/puzzlebox/lib32/lib/ld-linux.so.2 inside
collect2: error: ld returned 1 exit status

我在 /home/2 存储库上编译,但我的 glibc 需要 /home/1/glibc/puzzlebox/lib32/lib/libc.so.6

这是因为静态链接吗?如何克服?我如何构建一个可以在存储库之间使用的 glibc,而无需在每个存储库中重新构建?而且我不想覆盖已经存在的 glibc,所以我使用前缀作为 /usr

请推荐!!提前致谢!!

【问题讨论】:

    标签: glibc


    【解决方案1】:

    这是因为静态链接吗?

    没有。最可能的原因是/home/2/glibc/puzzlebox/lib32/lib/libc.so(这是一个链接器脚本,即一个文本文件)里面有/home/1/glibc/puzzlebox/lib32/lib/libc.so.6等。

    您可以编辑该文件,但实际上您应该使用--prefix=/foo 编译 GLIBC 除非这是您打算安装它的位置。

    【讨论】:

    • 非常感谢,我将路径更改为我需要准确安装的位置..工作正常...
    猜你喜欢
    • 2014-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-07
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多