bincrafters / community

Central repository for issues and recipes
http://bincrafters.readthedocs.io/en/latest/
MIT License
217 stars 36 forks source link

Boost ASIO and OpenSSL version #681

Open macumber opened 5 years ago

macumber commented 5 years ago

Package and Environment Details (include every applicable attribute)

Question Description

I am new to conan and it is going pretty well so far. However, I am having trouble with boost asio. I am trying to build with OpenSSL/1.1.0i and have listed this in my conan_cmake_run REQUIRES. I am trying to coordinate OpenSSL versions across boost, cpprest, and a custom build of Ruby (not yet built with conan). I am using boost log, which depends on boost asio, which appears to use a different version of OpenSSL. This is resulting in errors like:

Severity    Code    Description Project File    Line    Suppression State
Error   LNK2019 unresolved external symbol CRYPTO_cleanup_all_ex_data referenced in function "private: virtual void __cdecl std::_Ref_count<class boost::asio::ssl::detail::openssl_init_base::do_init>::_Destroy(void)" (?_Destroy@?$_Ref_count@Vdo_init@openssl_init_base@detail@ssl@asio@boost@@@std@@EEAAXXZ)   openstudio_utilities_static_tests   D:\openstudio_refactor2\build-release\src\utilities\cpprest141_2_10.lib(http_client_winhttp.obj)    1   

I don't really need the ssl functions in boost asio. Is there any advice on how to:

macumber commented 5 years ago

OpenSSL is listed as an optional dependency for boost. I don't see any relevant configuration variables to turn off ssl support in boost asio.

macumber commented 5 years ago

Is it possible to define BOOST_LOG_NO_ASIO in the configuration of boost log?

solvingj commented 5 years ago

will look into tomorrow

macumber commented 5 years ago

Thanks, it seems that cpprest is using boost asio as well so I am going to try rebuilding our custom Ruby version as a first step.

solvingj commented 5 years ago

I am very surprised and troubled to see that our boost_asio package doesn't have OpenSSL as an optional dependency. We need to add it.