链接时ssl版本冲突
Posted
技术标签:
【中文标题】链接时ssl版本冲突【英文标题】:ssl version conflict when linking 【发布时间】:2020-07-16 08:50:55 【问题描述】:我有一个需要 boost 和 mysqlconnector 的二进制文件,所以在链接时。
但是boost依赖于libssl.so.1.0.1,而mysqlconnector依赖于libssl.so.1.1
链接时,我收到以下警告。
/usr/bin/ld: warning: libssl.so.1.1, needed by //usr/lib/x86_64-linux-gnu/libmysqlcppconn.so.7, may conflict with libssl.so.1.0.0
我想告诉 mysqlconnector 链接到 libssl.so.1.1,而 boost 链接到 libssl.so.1.0.1。
有什么办法吗?
【问题讨论】:
【参考方案1】:我想告诉 mysqlconnector 链接到 libssl.so.1.1 而 boost 链接到 libssl.so.1.0.1。
有什么办法吗?
这已经发生了(这是链接器警告你的事情)。
最终结果是程序可能看起来可以运行,或者可能会崩溃。如果它今天似乎工作,它可能会在明天开始崩溃,因为对系统的看似无关的更改。换句话说,这条路会导致精神错乱。
你应该做的是获得一个一致的构建环境。也就是说,决定您要使用libssl.so.1.1
或libssl.so.1.0.1
中的哪一个,然后构建或以其他方式获取libmysqlconnector.so
和libbost.so
,其中两者 使用相同版本的libssl
.
【讨论】:
以上是关于链接时ssl版本冲突的主要内容,如果未能解决你的问题,请参考以下文章