gpt4 book ai didi

Android NDK r10c 为 arm64-v8a 构建错误 : No such file or directory #include

转载 作者:行者123 更新时间:2023-11-29 00:16:10 25 4
gpt4 key购买 nike

我有一个 native C 代码,它计算 SHA1 摘要。使用 NDK r10b 编译时没有问题。但是我在 NDK r10c 中遇到了这个错误:

[arm64-v8a] Compile        : my-library <= my-library-jni.c 
{PATH_TO_THE_FILE}/my-library-jni.c:3:18: fatal error: sha1.h:
No such file or directory
#include <sha1.h>

我正在更新到 NDK r10c 以针对 64 位平台进行编译。 64 位头文件似乎不包含 sha1.h。为什么?我该如何解决?我是否应该找到一些 SHA1 的 C 实现并将其包含在我的项目中?

编辑

我最终使用了 http://oauth.googlecode.com/svn/code/c/liboauth/src/sha1.c 中的代码.它对我来说效果很好。

最佳答案

我假设您没有尝试使用 NDK r10b 在 64 位模式下构建,因为我也没有在 arm64-v8a 中找到 sha1.h header 。

似乎之前公开的 SHA1 支持并不是真正有意的——文档中的任何地方都没有真正提到它,“稳定的 API”文档也没有提到它(我想这不能假设成为 C 库本身的一部分,尽管从技术上讲它是)。您在 32 位模式下链接到的 libc.so 还包括 MD5 函数,这些函数根本没有在 header 中公开,这使得这一切看起来更加意外/计划外。

即使它不是最初设计的,他们为了 32 位模式的兼容性而保留了它,但选择在 64 位模式中删除这种意外的包袱。

一些提交链接澄清: https://android.googlesource.com/platform/bionic/+/c82c0b7e07 https://android.googlesource.com/platform/ndk/+/69c6d8419%5E%21/

是的,您的解决方案是找到 SHA1 的现有 C 实现(幸运的是,在各种许可下有许多不同的实现)并将其包含在内。它们中的大多数具有非常相似或几乎相同的 API。

关于Android NDK r10c 为 arm64-v8a 构建错误 : No such file or directory #include <sha1. h>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26733673/

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