【发布时间】:2012-03-16 09:54:42
【问题描述】:
我在嵌入式环境中工作。我有一个用于 ARM 架构的交叉编译器,其中 eglibc 作为它的主库(即默认的 libc 与工具链一起提供)。现在我希望一些应用程序与uClibc 链接。所以我用那个工具链编译了uClibc。现在在尝试使用uClibc 编译和链接应用程序时,出现错误。它与工具链的默认库链接。我认为在同一台机器上可以有两个不同的 libcs(例如 libc、uClibc)。
我在网上搜索,得到以下内容
-
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链接 -
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的默认libc.so.6链接
我哪里出错了?我真的陷入了困境。有人可以解释一下吗?
【问题讨论】:
标签: linux gcc arm glibc uclibc