arm-linux-gcc /lib/libc.so.6,链接器 – 找不到/lib/libc.so.6

在交叉编译过程中遇到了链接错误,具体表现为无法找到所需的libc.so.6库,尽管该库实际存在于/home/work/worldcom/filesys/lib路径下。问题可能与编译器搜索路径设置或库的兼容性有关。编译命令中包含了-L选项来指定库路径,但链接器仍然跳过了不兼容的libc.so.6。这可能是由于目标架构与编译器不匹配导致的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在交叉编译一个应用程序,但链接爆炸与它的错误

“cannot find /lib/libc.so.6”.

它应该使用的libc.so.6位于/home/work/worldcom/filesys/lib/libc.so.6.这里有什么问题?

linking libobj.so

arm-none-linux-gnueabi-g++ obj1.o obj2.o obj2.o -o libobj.so -L/home/work/worldcom/filesys/usr -Wl,-O1 -Wl,-z,defs -Wl,--enable-new-dtags -Wl,--sort-common -Wl,--as-needed -Wl,--hash-style=both -L/home/work/worldcom/filesys -L/home/work/worldcom/filesys/lib -L/home/work/worldcom/filesys/usr/lib -lcurl -shared

/home/lishevita/armv5tel/arm-2009q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /lib/libc.so.6 when searching for /lib/libc.so.6

/home/lishevita/armv5tel/arm-2009q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: cannot find /lib/libc.so.6

collect2: ld returned 1 exit status

make: *** [libobj.so] Error 1

我的makefile是手写的(即不是由Autotools生成的).为了避免“你的Makefile被破坏”,这里有一些makefile的细节可能有助于澄清.

CROSS_COMPILE = arm-none-linux-gnueabi-

SYSROOT = /home/work/worldcom/filesys/

DESTDIR = /home/work/worldcom/filesys/

RELEASE_CXXFLAGS = -Os

DEBUG_CXXFLAGS = -O0 -gstabs

PKGCONFIG=`env ROOT=/home/work/worldcom/filesys cross-pkg-config glib-2.0 libcurl --cflags`

CC = $(CROSS_COMPILE)gcc

CXX = $(CROSS_COMPILE)g++

LD = $(CROSS_COMPILE)ld

AR = $(CROSS_COMPILE)ar

LDFLAGS = -Wl,--hash-style=both -L$(SYSROOT) -L$(SYSROOT)lib -L$(SYSROOT)usr -L$(SYSROOT)usr/lib -lcurl

libobj.so: $(LIBOBJ_OBJS)

@echo linking $@

$(CXX) $^ -o $@ $(LDFLAGS) -shared $(PKG_LIBS)

当然,还有LIBOBJ_OBJS的定义和目标,但这些与问题无关.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值