链接时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.1libssl.so.1.0.1 中的哪一个,然后构建或以其他方式获取libmysqlconnector.solibbost.so,其中两者 使用相同版本的libssl .

【讨论】:

以上是关于链接时ssl版本冲突的主要内容,如果未能解决你的问题,请参考以下文章

svn冲突问题详解 SVN版本冲突解决详解

iOS 14 链接模块标志“矮人版本”:ID 具有冲突行为

SVN提交项目时版本冲突解决方案

httpclient版本冲突,maven工程中传递依赖导致的版本冲突

解决编译时依赖版本冲突问题

使用NPOI时ICSharpCode.SharpZipLib版本冲突问题解决