代码之家  ›  专栏  ›  技术社区  ›  smbear

Glibc和uClibc在一个系统上并排运行

  •  4
  • smbear  · 技术社区  · 15 年前

    有没有可能 加州大学图书馆

    背景: 我们配置了基于二进制gcc的交叉编译器来链接uClibc。我们用它交叉编译了glibc。现在我们要构建一些应用程序,以便它们与glibc而不是uClibc链接。我们不想重建编译器。

    3 回复  |  直到 15 年前
        1
  •  4
  •   R.. GitHub STOP HELPING ICE    15 年前

    glibc和uClibc没有问题,有些程序链接到一个程序,而其他程序链接到另一个程序。但是,附加库有问题。系统上的每个共享库都将针对glibc或uClibc(使用相应的头文件,这些头文件为标准库函数定义不同的abi)构建,因此,例如,如果glibc程序和uClibc程序都需要ncurses,则需要构建两个版本的ncurses,并有一种方法确保在运行时加载给定程序的正确程序。或者,您可以选择只使用一组共享库,并对链接到另一个libc的程序使用静态库,但是您仍然需要构建两组库。

        2
  •  2
  •   Prof. Falken    15 年前

    是的,这应该是完全可能的,但你可能必须玩的LD_预加载路径。如果是静态链接,请更改为动态链接。

        3
  •  0
  •   heroxbd    13 年前

    由于ABI和include dir是不兼容的,几乎不可能将它们混合在同一FHS中。但是,可以通过调整ELF中的dynamic linker字段并利用gcc/binutils中的sysroot特性,将它们中的任何一个安装到目录偏移量中。在Gentoo社区[1]中有一个正在进行的实验,称为Prefix/libc。

    1. http://wiki.gentoo.org/wiki/Prefix/libc