You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用-nostdlib链接静态库出现undefined reference to __dso_handle报错

报错核心原因
  • -nostdlib参数会禁用标准库、启动文件的自动链接,而共享库依赖的关键符号__dso_handle默认定义在gcc的内置支持库中,你没有手动链接对应库就会出现未定义引用报错
  • 你使用的libfreeimage.a静态库编译时未添加-fPIC参数,arm64架构下静态库要嵌入共享库,所有代码必须编译为位置无关代码,这也是报错中重定位错误的触发原因
修复步骤
  • 重新编译libfreeimage.a,编译所有目标文件时都添加-fPIC参数,确保静态库适配共享库链接要求
  • 调整链接命令,在保留-nostdlib的前提下手动添加gcc底层支持库的链接参数,不需要引入完整标准库,不会影响你原有的加固需求
    调整后可用的链接命令如下:
g++ -shared -fPIC -nostdlib a.o b.o c.o libfreeimage.a -lgcc -lgcc_s -o libmy_so.so

如果调整后仍有少量基础符号未定义,可以额外追加-lc链接最小化C标准库即可。

内容的提问来源于stack exchange,提问作者prgbenz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:45:02