ZBLOG

在android ndk编译curl时设置了DCMAKE_USE_OPENSSL=OFF 后报 CA path only supported by OpenSSL, GnuTLS or mbed TLS. Set CURL_CA_PATH=none or enable one of those TLS backends.

在 Android NDK 中编译 cURL 时,如果你设置了 -DCMAKE_USE_OPENSSL=OFF,并且仍然遇到错误提示“CA path only supported by OpenSSL, GnuTLS or mbed TLS”,这表明 cURL 需要一个有效的 TLS 后端来处理证书验证。

如果你不打算使用 OpenSSL、GnuTLS 或 mbed TLS,你可以选择将 CA 路径设置为 none。这样,cURL 就不会尝试查找 CA 文件,从而避免此错误。下面是如何做到这一点的步骤:

设置 CA 路径为 none

在配置 cURL 时,你可以添加以下参数:

cmake .. \
    -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN/share/cmake/Android.toolchain.cmake \
    -DANDROID_ABI=$ABI \
    -DANDROID_PLATFORM=android-$API \
    -DBUILD_SHARED_LIBS=ON \
    -DCMAKE_BUILD_TYPE=Release \
    -DCURL_DISABLE_LDAP=ON \
    -DCURL_STATICLIB=OFF \
    -DCURL_CA_PATH=none   # 添加这一行以禁用 CA 路径 

其他注意事项

  1. TLS 支持: 如果你的应用需要 SSL/TLS 支持(例如 HTTPS),建议启用某个 TLS 后端,如 OpenSSL、GnuTLS 或 mbed TLS,并确保正确配置。

  2. 示例命令: 如果决定使用 OpenSSL,可以改为如下命令:

   cmake .. \
       -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN/share/cmake/Android.toolchain.cmake \
       -DANDROID_ABI=$ABI \
       -DANDROID_PLATFORM=android-$API \
       -DBUILD_SHARED_LIBS=ON \
       -DCMAKE_BUILD_TYPE=Release \
       -DCURL_DISABLE_LDAP=ON \
       -DUSE_OPENSSL=ON \     # 启用 OpenSSL 
       -DOPENSSL_ROOT_DIR=/path/to/openssl # 指向 OpenSSL 安装目录 
  1. 环境变量: 如果你在项目中使用环境变量来指定路径,请确保这些路径是正确的。

总结

通过将 CURL_CA_PATH 设置为 none,或者启用适当的 TLS 后端,你应该能够解决这个问题。如果有进一步的问题或需求,请随时询问!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:http://sdn.0voice.com/?id=5800

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?