gpt4 book ai didi

linux - 使用非主要 libc 编译,(即 eglibc、uClibc)

转载 作者:太空狗 更新时间:2023-10-29 11:15:48 31 4
gpt4 key购买 nike

我在嵌入式环境中工作。我有一个用于 ARM 架构的交叉编译器,它是 eglibc 作为主要库(即默认的 libc 与工具链一起出现)。现在我想要一些应用程序与 uClibc 链接。所以我用那个工具链编译了uClibc。现在,在尝试使用 uClibc 编译和链接应用程序时,出现错误。它正在与工具链的默认库链接。我认为在同一台机器上可以有两个不同的 libc(例如 libc、uClibc)。

我在网上搜索了一下,结果如下

  1. Multiple glibc libraries on a single host

    按照它的建议,我做了以下操作

    $arm-unknown-linux-gnueabi-gcc -c test.c -o TEST

    $arm-linux-gnueabi-gcc TEST -o dynamic_test_with_new_opts -Wl,rpath=/home/user/UCLIBC/uClibc-0.9.32.1/INSTALL-DIR/usr/arm-linux-uclibc/lib -Wl,-dynamic-linker=/home/user/UCLIBC/uClibc-0.9.32.1/INSTALL-DIR/usr/arm-linux-uclibc/lib/ld-uClibc.so.0

    在这种情况下,它正在与 eglibc

    的默认 libc.so.6 链接
  2. How to link to a different libc file?

    正如上面链接所建议的,我什至尝试了以下方法:

    $arm-unknown-linux-gnueabi-gcc -Xlinker -rpath=/home/user/UCLIBC/uClibc-0.9.32.1/INSTALL-DIR/usr/arm-linux-uclibc/lib -Xlinker -I/home/user/UCLIBC/uClibc-0.9.32.1/INSTALL-DIR/usr/arm-linux-uclibc/lib/ld-uClibc-0.9.32.1.so test.c -o  dynamic_test_with_linker_options 

    在这种情况下,它也正在与 eglibc

  3. 的默认 libc.so.6 链接

我哪里错了?我真的深陷其中。有人可以解释一下吗?

最佳答案

我认为您需要重建编译器才能做到这一点。编译器需要进行不同的配置才能使用 uClibc。

关于linux - 使用非主要 libc 编译,(即 eglibc、uClibc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9735068/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com