找不到libm.so, libc.so

📅 2026/7/23 2:25:48 ✍️ 编辑团队 👁️ 阅读次数
找不到libm.so, libc.so
移植一个开源库发现编译一直报找不到libm,libc等系统库。不断发原因增加--sysroot加-L都不能将路径传入到参数中。最后增加verbose发现其链接是通过g调用的ld不是直接ld。进一下分析发现ld调用的是一个脚本实现路径sysroot和L参数等传不进ld。核心原因。由于办法1将ld的内置脚本导出来用命令行可以导出。mips-mti-linux-gnu-ld --verbose -shared -z combreloc my_script.lds再将脚本里的搜索目录修改成自己的目录SEARCH_DIR(/home/deng/H3_Android/hc_linux_A3100/tool-chain/lib); SEARCH_DIR(/home/deng/H3_Android/hc_linux_A3100/tool-chain/mipsel-buildroot-linux-gnu/sysroot/lib); SEARCH_DIR(/lib); SEARCH_DIR(/home/deng/H3_Android/hc_linux_A3100/tool-chain/mipsel-buildroot-linux-gnu/sysroot/usr/lib);下一步在LDFLAGS中增加指定脚本选项export LDFLAGS-Wl,--verbose -B${STAGING_DIR}/usr/lib -Wl,-T,${LD_SCRIPT_PATH}重新编译链接成功。