【发布时间】:2018-02-07 22:01:49
【问题描述】:
我有 Windows 10 64 位笔记本电脑
我正在尝试通过执行来构建ed25519-donna:
g++ -o ed25519 Core/src/main/jni/ed25519/ed25519.c -I C:/OpenSSL/include -L C:/OpenSSL/lib/
但我收到以下错误:
...ed25519.c:(.text+0x120b0): 对“RAND_bytes”的未定义引用 c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../libmingw32.a(main.o):(.text.startup+0xa0): 未定义引用'WinMain@16'
它抱怨缺少打开的 ssl 加密文件,但我不知道如何解决这个问题。也一直在尝试追加:-lssl -lcrypto,但没有帮助
【问题讨论】:
-
这是预期的。
ed25519.c不是一个可以运行的完整程序。 -
@n.m.我的目标是在 Java jni 项目中将其用作库,我该怎么办?
-
您使用的命令构建了一个可执行文件。要构建一个库,您需要不同的命令行参数。我不熟悉 JNI,所以我不会尝试猜测您到底需要什么。我只建议你使用 C 编译器,因为它是 C 库,而不是 C++ 库。
-
对不起,我没有 C 的经验,你能告诉我如何用 C 编译一个库吗?
-
也许问“如何编译基于 OpenSSL 的 C 库以与 JNI 一起使用”之类的问题并使用适当的标签会吸引合适的人群。