【问题标题】:"openssl/aes.h: No such file or directory" under AndroidAndroid下的“openssl/aes.h: No such file or directory”
【发布时间】:2016-02-17 12:15:13
【问题描述】:

我正在尝试编译到 android 环境。因此,我收到以下错误:

error: openssl/aes.h: No such file or directory

我在堆栈中找到了一些解决方案,但是我不知道如何结束进程才能编译。

我已经编译了openssl 的一个版本,我应该添加库吗?或者如何生成 *.a?

你知道如何将这个库添加到我需要运行的 arm-linux-androideabi-g++ 以解决这个问题吗?

【问题讨论】:

标签: android c++ android-ndk openssl cross-compiling


【解决方案1】:

[1] 获取包含文件夹中的 aes.h 文件 的 openssl 库。

[2]如果您在 lib 文件夹中编译了 openssl 库,则将 -lssl 或 -lopenssl 添加到命令行。

【讨论】:

  • 但是我可以在哪里添加?这就是问题:(
  • 尝试编译有点像:gcc -I/home/src/openssl/include -L/home/src/openssl/lib -lssl -lcrypto
  • 只需确保您在 openssl lib 文件夹中有 .lib 文件
【解决方案2】:

在这里您可以找到 openssl 包括:openssl

下载此包含并将它们放在项目中的某个文件夹中,即 project_dir/module_dir/jni/openssl-includes。

然后你需要在你的 Android.mk 中设置一个 LOCAL_C_INCLUDES 变量(它也在 jni 文件夹中: LOCAL_C_INCLUDES += ./openssl-includes

之后,您可以直接按名称将文件包含在openssl-includes文件夹中,即:

#include <aes.h>

如果您需要 *.a 文件作为输出,则应在 Android.mk 中包含 BUILD_STATIC_LIBRARY,如果您需要 *.so 库,请包含 BUILD_SHARED_LIBRARY。

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 2016-01-05
    • 2016-11-01
    • 2020-03-19
    • 1970-01-01
    相关资源
    最近更新 更多