gpt4 book ai didi

android - 使用 Bazel 为 Android 编译 OpenSSL

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:25 25 4
gpt4 key购买 nike

我正在使用 bazel 为我的 Android 应用构建原生库。

我想用一些 OpenSSL它的功能是这样的:

#include <jni.h>
#include <openssl/aes.h>
...
AES_encrypt(in, out, key);

如何将 openssl 库添加到 bazel 构建中?

附属问题:我应该使用哪个存档?

openssl-1.1.0c.tar.gz
openssl-1.0.2j.tar.gz
openssl-1.0.1u.tar.gz
openssl-fips-2.0.13.tar.gz
openssl-fips-ecp-2.0.13.tar.gz

我尝试过的

我已经下载了 openssl-1.0.2j 存档。并在我的 BUILD 文件中添加了一个 cc_library 条目。

cc_library(
name = "openssl",
srcs = glob([
"openssl-1.0.2j/crypto/**/*.h",
"openssl-1.0.2j/crypto/**/*.c"
]),
includes = [
"openssl-1.0.2j",
"openssl-1.0.2j/crypto/",
],
visibility = ["//visibility:public"],
)

我有这个错误:

openssl-1.0.2j/crypto/dh/p512.c:60:24: fatal error: openssl/bn.h: No such file or directory
#include <openssl/bn.h>

但我不明白为什么这段代码试图在 openssl-1.0.2j/crypto/ 中包含来自 openssl 的文件

使用openssl-1.1.0c

openssl-1.1.0c/include/openssl/e_os2.h:13:34: fatal error: openssl/opensslconf.h: No such file or directory
# include <openssl/opensslconf.h>

即使我运行 Configure 命令,也不会生成 opensslconf.h 文件。

最佳答案

根据@Ulf Adams 的回答,我放弃了使用 bazel 编译 OpenSSL 的尝试。我改用了 BoringSSL

BoringSSL是 OpenSSL 的一个分支,很容易成为 incorporated通过做一个 bazel 项目:

git_repository(
name = "boringssl",
commit = "_some commit_",
remote = "https://boringssl.googlesource.com/boringssl",
)

关于android - 使用 Bazel 为 Android 编译 OpenSSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41226042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com