Ghi*_*ADJ 5 c android openssl bazel
我正在使用 bazel 为我的 Android 应用程序构建一个本机库。
我想像这样使用一些OpenSSL函数:
#include <jni.h>
#include <openssl/aes.h>
...
AES_encrypt(in, out, key);
Run Code Online (Sandbox Code Playgroud)
如何将 openssl 库添加到 bazel build ?
附属问题:我应该使用哪个存档?
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
Run Code Online (Sandbox Code Playgroud)
我下载了openssl-1.0.2j存档。并cc_library在我的BUILD文件中添加了一个条目。
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"],
)
Run Code Online (Sandbox Code Playgroud)
我有这个错误:
openssl-1.0.2j/crypto/dh/p512.c:60:24: fatal error: openssl/bn.h: No such file or directory
#include <openssl/bn.h>
Run Code Online (Sandbox Code Playgroud)
但我不明白为什么这个代码试图包括文件,从openssl而它在openssl-1.0.2j/crypto/
和 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>
Run Code Online (Sandbox Code Playgroud)
即使我运行Configure命令,也不会opensslconf.h生成文件。
根据 @Ulf Adams 的回答,我放弃了尝试OpenSSL使用 bazel 进行编译。我用BoringSSL的是。
BoringSSL是 OpenSSL 的一个分支,可以通过执行以下操作轻松合并到 bazel 项目中:
git_repository(
name = "boringssl",
commit = "_some commit_",
remote = "https://boringssl.googlesource.com/boringssl",
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
700 次 |
| 最近记录: |