【问题标题】:Add openssl dependency using g++使用 g++ 添加 openssl 依赖
【发布时间】: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 一起使用”之类的问题并使用适当的标签会吸引合适的人群。

标签: c++ openssl g++


【解决方案1】:

感谢n.mcomment指出应该是图书馆,我找到了解决办法:

g++ -Wall -g -c Core/src/main/jni/ed25519/ed25519.c -I C:/OpenSSL/include -o Core/out/jni/ed25519.o

【讨论】:

    猜你喜欢
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-07
    相关资源
    最近更新 更多