问题
Readme.txt for ActiveMQ CPP library version 3.9.5 states
1.3 OpenSSL
If you wish to use the SSL Transport then you will need to have OpenSSL and its includes installed on your system. We recommend that you use version 1.0.0 or higher for best performance and security, but version from 0.9.8 are also known to work.
I'm trying to build activemq cms 3.9.5 with OpenSSL 1.1.1 using Visual Studio project (included into activemq-cpp 3.9.5 distribution) and looks like CRYPTO_malloc_init() is removed from OpenSSL 1.1.1, such that I'm having compilation error in OpenSSLContextSpi.cpp
#ifdef HAVE_OPENSSL
// General library initialization.
#ifdef WIN32
CRYPTO_malloc_init();
#endif
SSL_load_error_strings();
SSL_library_init();
OpenSSL_add_all_algorithms();
... while OpenSSL 1.1.1 has define another macro
#define OPENSSL_malloc_init() \
CRYPTO_set_mem_functions(CRYPTO_malloc, CRYPTO_realloc, CRYPTO_free)
I found the following https://stackoverflow.com/questions/46005827/does-activemq-cpp-3-9-4-support-openssl-1-1-0/55131365#55131365 but I'm not clear whether it was addressed and I'm having the problem to build it properly or OpenSSL 1.1.1 is not actually supported by version 3.9.5? Any help or clarification would be appreciated
回答1:
OpenSSL 1.1.1 is not supported in that version of the CMS client and so mostly likely won't allow the client to build, and if it does build it'd likely fail. The CMS client is not actively being developed so I would look at alternate client libraries such as an AMQP client for the Apache Qpid project for instance.
来源:https://stackoverflow.com/questions/55143202/failed-to-build-activemq-cms-3-9-5-with-openssl-1-1-1