找不到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}"

重新编译,链接成功。

相关推荐
Rocktech_ruixun1 小时前
机器人端侧大模型部署对主板有哪些要求?瑞迅主控板分级方案对比
人工智能·嵌入式硬件·机器人
Rocktech_ruixun2 小时前
机器人数据采集能力取决于什么?瑞迅科技RK3588/3576核心板方案深度解析
人工智能·嵌入式硬件·机器人
恒锐丰科技韩生2 小时前
率能 SS6625E|3.0~20V 单通道 H 桥直流电机驱动 SOP8 电子锁玩具机器人分享
嵌入式硬件·硬件工程
zlinear数据采集卡3 小时前
D223 ADC数据处理流水线:从原始采样值到工程单位的完整转换链
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
Dr.kangder4 小时前
嵌入式面试总结(十八)——JTAG调试
嵌入式硬件·面试·职场和发展·架构·嵌入式
恒锐丰科技韩生5 小时前
率能 SS6226|2.4~7.2V 低压双通道双 H 桥电机驱动 SOP16 玩具小家电专用芯片
嵌入式硬件·硬件工程
萌新小白YXY8 小时前
SAE J1587/SAE J1708 协议笔记
笔记·单片机·嵌入式硬件
恒锐丰科技韩生9 小时前
率能 SS6635E|3.0~30V 直流双向 H 桥电机驱动 SOP8 玩具电子锁机器人分享
嵌入式硬件·硬件工程
恒锐丰科技林技术员9 小时前
高集成双通道 H 桥驱动芯片 SS6850H:低压直流电机驱动优选方案
嵌入式硬件·硬件工程
森旺电子9 小时前
电子负载使用介绍
单片机·嵌入式硬件