首页 > 解决方案 > 在构建 boost 时静态链接 openssl

问题描述

我已经静态构建了 boost,并且档案被链接到我的应用程序的共享库中。在该共享库中,我还链接了 openssl 1.1.1 档案。但是,在运行时,会产生以下堆栈跟踪:

Thread 1 (Thread 0x7fc80cc19700 (LWP 28492)):
#0  0x00007fc82d4e88c0 in TLSv1_2_enc_data () from /opt/tableau/tableau_server/packages/bin.20201.20.0326.1623/libtabssl.so.1.0.0
#1  0x00007fc82d2be41c in SSL_CTX_new () from /opt/tableau/tableau_server/packages/bin.20201.20.0326.1623/libtabssl.so.1.0.0
#2  0x00007fc7fc83effd in boost_sb::asio::ssl::context::context(boost_sb::asio::ssl::context_base::method) () from /home/employee/DrillDevelopment/NEW_DRill/lib/ThirdParty/./libdrillClient.so
#3  0x00007fc7fc830af1 in Drill::ChannelFactory::getChannelContext(Drill::channelType_t, Drill::DrillUserProperties*) () from /home/employee/DrillDevelopment/NEW_DRill/lib/ThirdParty/./libdrillClient.so

如您所见,boost asio 的 ssl 函数使用了另一个导致问题的较旧的 ssl 库。我想以某种方式使用链接中包含的我的 ssl 档案来构建提升。问题是因为 openssl 对于 asio 是可选的,所以我无法在构建时链接 openssl 库来提升它。

有什么想法吗?

EDIT1:这是一个示例链接命令:这是一个示例链接命令:

/usr/bin/g++49  -fPIC  -fPIC -O3 -DNDEBUG  -shared -Wl,-soname,libdrillClient.so -o libfoo.so -L/usr/local/lib /home/agupta/p4/AGupta_bansmbbld_3441/ThirdParty/boost/1.68.0_sb_icusb_58.2.x/_src/boost_sbdebug64/debug64/lib/libboost_sb_regex.a /home/agupta/p4/AGupta_bansmbbld_3441/ThirdParty/boost/1.68.0_sb_icusb_58.2.x/_src/boost_sbdebug64/debug64/lib/libboost_sb_system.a /home/agupta/p4/AGupta_bansmbbld_3441/ThirdParty/boost/1.68.0_sb_icusb_58.2.x/_src/boost_sbdebug64/debug64/lib/libboost_sb_date_time.a /home/agupta/p4/AGupta_bansmbbld_3441/ThirdParty/boost/1.68.0_sb_icusb_58.2.x/_src/boost_sbdebug64/debug64/lib/libboost_sb_chrono.a /home/agupta/p4/AGupta_bansmbbld_3441/ThirdParty/boost/1.68.0_sb_icusb_58.2.x/_src/boost_sbdebug64/debug64/lib/libboost_sb_thread.a /home/agupta/p4/AGupta_bansmbbld_3441/ThirdParty/boost/1.68.0_sb_icusb_58.2.x/_src/boost_sbdebug64/debug64/lib/libboost_sb_random.a /home/agupta/p4/AGupta_bansmbbld_3441/ThirdParty/openssl/1.1.1/centos5/gcc4_9/release64/lib/libssl.a /home/agupta/p4/AGupta_bansmbbld_3441/ThirdParty/openssl/1.1.1/centos5/gcc4_9/release64/lib/libcrypto.a

标签: c++sslboostopenssl

解决方案


推荐阅读