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

为Android编译Socat时运行构建脚本出现NDK相关命令未找到错误

问题原因分析

你使用的Android NDK r23版本已完全移除了旧版工具链生成脚本make-standalone-toolchain.sh,以及该脚本依赖的公共库文件prebuilt-common.sh。你当前用的socat编译脚本是针对r17及更早版本的NDK编写的,调用已废弃的旧工具时自然会出现文件不存在、内置函数找不到的报错。

修复方案
  • 方案1:降级NDK版本(改造成本最低)
    直接下载NDK r17c版本,这是最后一个原生支持make-standalone-toolchain.sh的稳定NDK版本。替换你当前的r23版本后,重新修改socat_buildscript_for_android.sh里的NDK路径为r17c的存放路径,重新执行构建脚本即可,无需修改其他逻辑。

  • 方案2:适配NDK r23新工具链(无需降级NDK)
    直接修改socat_buildscript_for_android.sh的逻辑,适配r23自带的llvm工具链:

    1. 删除脚本中所有调用make-standalone-toolchain.sh的代码段
    2. 手动指定编译工具路径,示例配置(以编译64位arm架构为例,32位可替换对应前缀):
    export NDK_PATH=你的NDK r23存放路径
    export TARGET_HOST=aarch64-linux-android
    export API_LEVEL=21
    export TOOLCHAIN=$NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64
    export CC=$TOOLCHAIN/bin/$TARGET_HOST$API_LEVEL-clang
    export CXX=$TOOLCHAIN/bin/$TARGET_HOST$API_LEVEL-clang++
    export AR=$TOOLCHAIN/bin/llvm-ar
    export RANLIB=$TOOLCHAIN/bin/llvm-ranlib
    export CFLAGS="--sysroot=$TOOLCHAIN/sysroot"
    
    1. 后续调用socat的configure脚本时添加参数--host=$TARGET_HOST,再执行make即可完成编译。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:48:02