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

使用CMake构建Android库时遭遇Ssl依赖缺失错误及解决方法

CMake构建Android库时出现'Ssl-NOTFOUND'依赖错误的原因与修复

问题场景

你在使用Gradle和CMake构建Android库、引入OpenSSL依赖时编写了如下CMake代码:

add_library(Ssl STATIC IMPORTED)
set_target_properties(Crypto PROPERTIES IMPORTED_LOCATION /Users/user/dev/android_openssl/static/lib/${ANDROID_ABI}/lib/libssl.a)

构建时抛出错误:

ninja: error: 'Ssl-NOTFOUND', needed by 'lib/libmylib.so', missing and no known rule to make it

查看build.ninja发现依赖显示为Ssl-NOTFOUND,但libssl.a的路径是正确的,这是为什么?


问题根源

这个错误完全是目标名称不匹配导致的配置遗漏:

你通过add_library声明了一个名为Ssl的静态导入库,但后续调用set_target_properties时,错误地把IMPORTED_LOCATION属性赋值给了一个名为Crypto的目标——而这个Crypto目标在当前CMake脚本里根本没定义过。

CMake找不到Ssl目标对应的导入路径配置,就会将其标记为Ssl-NOTFOUND,最终导致Ninja构建失败。

修复后的代码

只需要把set_target_properties的目标参数改成和add_library定义的Ssl一致即可:

add_library(Ssl STATIC IMPORTED)
set_target_properties(Ssl PROPERTIES IMPORTED_LOCATION /Users/user/dev/android_openssl/static/lib/${ANDROID_ABI}/lib/libssl.a)

这样CMake就能正确关联Ssl目标与对应的静态库文件,构建流程就能正常执行了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 07:07:37