我在使用OpenSSL构建ACE_SSL库时遇到问题。
我正在使用ACE 6.4.1和OpenSSL 1.1.0c这是github上的最新版本(我认为这些是兼容的,即使ACE SSL的构建指令似乎引用out32和inc32似乎是输出构建以前版本的OpenSSL而不是这个版本。)
我设法构建openssl并且所有测试都运行正常。之后我运行了.mwc脚本ACE随之而来:
bin \ mwc.pl -type vc14 -features" ssl = 1" ACE.mwc
这生成了一个Visual Studio 2015解决方案,现在确实包含一个名为SSL的项目和其他几个相关项目。然而,当我尝试构建时,编译器抱怨使用了不完整类型" BIO_METHOD"这是" struct bio_method_st"的typedef,在openssl标题" bio.h"中定义。
在openssl文件夹中搜索" struct bio_method_st"时,我只找到一个引用它并且它在该头中,但它只包含声明而不是定义。与旧版本的openssl online相比,该标题也用于包含定义。
我还在网上找到了一个带有脚本的repo,下载并使用ssl 64位版本构建ace:
该脚本运行并构建正常,但它使用ACE版本6.3.3和openssl版本1.0.2f(今年1月发布)。我可以轻松地修改它来构建我需要的32位库,并将其更改为使用最新版本的ACE。使用最新版本的openssl需要更多更改,因为构建步骤已更改,因此我可以节省时间并使用该版本的openssl。这会带来什么问题吗?我假设即使新版本在某些方面有所改进,它也不会使旧版本过时了吗?
底线是我无法弄清楚问题是我做错了什么,或者如果ACE与这个版本的openssl不兼容,我应该使用旧版本。我只是想发布这个以防万一有人遇到类似的事情,并且可以在我做任何额外的工作之前指出我正确的方向。谢谢!