【发布时间】:2019-01-14 19:27:08
【问题描述】:
我正在努力让 OpenSSL 和 Embarcadero 10.1 Berlin 发挥出色。
我有一个 C++ 项目(VCL 表单),它导入 OpenSSL 库,然后使用它们的功能(例如:openssl/evp.h)。
我对 Embarcadero IDE、C++ 以及 OpenSSL 还是很陌生。不是一个很好的组合,但这个设置是我需要使用的。
当我第一次开始进入这个 OpenSSL 兔子洞时,我的项目无法找到我的“#include”。在“项目选项”中闲逛之后,我设置了“include”路径以在我的 OpenSSL 安装中添加“include”文件夹,并设置“lib”路径以在我的 OpenSSL 安装中添加“lib”文件夹。
这解决了我无法找到文件的问题,但现在我遇到了链接器问题:
[ilink64 错误] 错误:从 C:\filepathhere 引用的无法解析的外部“_EVP_EncryptInit_ex”
我在网上搜索过这个问题的解决方案,对于这个特定问题有很多建议的解决方案!但是,它们都没有解决我的问题,我不确定这是因为它们是不正确的解决方案,还是我没有正确执行它们。很难说,因为其中大部分对我来说都是新的。
我的项目的目标平台设置为 Win64,所以我最初认为我链接的 OpenSSL 库可能是针对 Win32 的。我尝试将目标平台切换到 Win32,以及为 64 位安装单独的 OpenSSL,但这些解决方案都没有奏效。 (将目标平台切换到Win32时,错误变为[ilink32 Error]而不是[ilink64 Error]。
然后我尝试通过以下建议的解决方案:
linker error with openssl (trying SH1 example)
How do I solve an unresolved external when using C++ Builder packages?
https://forums.embarcadero.com/thread.jspa?threadID=113166
但是,他们都没有成功。更糟糕的是,列出的解决方案差异很大,以至于越来越难以知道我是否曾经偶然发现该解决方案(并且执行不当),现在只是在浪费时间寻找新的解决方案。
我也尝试在 OpenSSL 上使用 Embarcadero 的官方 wiki 页面,但安装步骤没有帮助。 http://docwiki.embarcadero.com/RADStudio/Berlin/en/OpenSSL
我现在已经无计可施了。我想要做的就是在 Windows 10 机器上使用 OpenSSL 和 Embarcadero 10.1,使用 C++,开发 64 位应用程序。
非常感谢任何和所有帮助。如果这最终成为一个重复的问题,我深表歉意。在此先感谢大家。
【问题讨论】:
标签: openssl linker-errors c++builder