链接器错误(库版本冲突)



我有一个cmake项目,它使用conan作为包管理器。该项目使用1.71版本的boost组件,我已经安装了libboost-dev(v1.62(,它不能从我的系统中删除。

/usr/bin/ld:warning:libboostrongystem.so.1.62.0,/usr/bin/..需要/lib/gcc/x86_64-linux-gnu/6.3.0/../../x86/64-linux-gnu/librast_files.so,可能与libboostrongystem.so.1.71.0冲突
/usr/bin/ld:warning:libboost_files.so.171.0,bin/libAppUtil.so需要,可能与libboost_filsystem.so.1.62.0冲突
/usr/bin/ld:warning:Libboostfilesystem.so.1.761.0,bin-libAppUti.so需要,可能与libboost_filesystem.so.1.62.0
bin/libCoreInt.so:未定义对"boost::filesystem::native(std::__1::basic_string<char,std::_1::char_traits,std:;__1::分配器>const&("的引用
clang:error:链接器命令失败,退出代码为1(使用-v查看调用(

我不知道冲突是否是链接器错误的来源,但我猜是

共享库有两个版本:

  1. libboostrongystem.so.1.62.0(已存在(
  2. libboostrongystem.so.1.71.0(项目需求(

由于共享库(libboostrongystem.so.1.62.0(无法删除。请将现有库升级到libboostrongystem.so.1.71.0。这个问题应该得到解决。

但同样,由于存在对libboostrongystem.so.1.62.0的依赖,我们可以执行以下操作:

  1. 项目特定的cmake文件应该引用具有共享库"libboostrongystem.so.1.71.0"的目录

因此,在构建项目时,可执行文件应指向版本:libboostrongystem.So.1.71.0。

最新更新