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

为Android编译valgrind报错“ld: error: unable to find library -lgcc”

问题原因

NDK r23及以上版本移除了传统位于toolchains/arm-linux-androideabi-4.9/prebuilt/路径下的libgcc库,默认切换到LLVM的libunwind作为底层运行时,而valgrind官方构建脚本默认写死了链接时依赖-lgcc参数,因此触发找不到库的错误。

解决步骤
  • 第一步:在构建脚本的变量定义块新增LDFLAGS变量,添加libgcc的实际搜索路径,补充运行时依赖:
# 新增到原有变量定义区域
# 可先到${TOOLCHAIN}/lib/clang/路径下确认实际的clang版本号,替换下方的12.0.8
export CLANG_VER="12.0.8"
export LDFLAGS="-L${TOOLCHAIN}/lib/clang/${CLANG_VER}/lib/linux/arm -lgcc -lunwind"
  • 第二步:修改configure命令,传入新增的LDFLAGS参数,同时补充Android平台适配的配置项:
${SRC_DIR}/configure \
    --host=${TARGET} \
    --target=${TARGET} \
    --prefix="${BUILD_DIR}/../install_ndk" \
    --with-android-sdk=${API} \
    LDFLAGS="${LDFLAGS}" || exit 1
  • 第三步:如果依然报相同错误,直接修改configure生成的所有Makefile文件,把所有出现-lgcc的位置,替换为-L${TOOLCHAIN}/lib/clang/${CLANG_VER}/lib/linux/arm -lgcc -lunwind即可。
  • 额外注意:valgrind官方对Android平台的支持最高验证到Android 9(API 28),你当前的目标API刚好匹配,无需额外打版本适配补丁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:24:00