gpt4 book ai didi

更改链接哪个 libc.so ?

转载 作者:行者123 更新时间:2023-11-30 16:37:22 34 4
gpt4 key购买 nike

我正在尝试在我的路由器上交叉编译 MIPSEL。我在汇编中找到了一些东西,但现在我开始尝试编译基本的 C 代码。

目前只有简单的 hello world c 代码,并使用 mipsel-linux-gnu-gcc 编译器,该编译器适用于汇编。

编译命令:

 mipsel-linux-gnu-gcc  -L/home/uname/devel/extr/squashfs-root/lib -l:libc.so.0 -mips32 -Wl,--build-id=none -Wl,--dynamic-linker=/lib/ld-uClibc.so.0  ma.c

libc.so.0 是从路由器固件中提取的。

程序可以编译,但是在 readelf 中,问题是它链接到 libc.so.6

 0x00000001 (NEEDED)                     Shared library: [libc.so.6]

从固件中提取 busybox 二进制文件并在其上运行 readelf

0x00000001 (NEEDED)                     Shared library: [libc.so.0]

如何让它链接到 libc.so.0?

最佳答案

看起来您需要否定标准 glibc 路径,因为编译器首先检查它。这可以通过使用 -nostdinc 进行编译来完成。

然后,您需要 -I 包含 gcc header 等,如 here. 中所述。

关于更改链接哪个 libc.so ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47956853/

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