0
votes

I have a cmake project which uses conan as its package manager. The project uses boost components of version 1.71 and i have installed libboost-dev (v 1.62) which cannot be deleted from my system.

/usr/bin/ld: warning: libboost_system.so.1.62.0, needed by /usr/bin/../lib/gcc/x86_64-linux-gnu/6.3.0/../../../x86_64-linux-gnu/libboost_filesystem.so, may conflict with libboost_system.so.1.71.0
/usr/bin/ld: warning: libboost_filesystem.so.1.71.0, needed by bin/libAppUtil.so, may conflict with libboost_filesystem.so.1.62.0
/usr/bin/ld: warning: libboost_filesystem.so.1.71.0, needed by bin/libAppUtil.so, may conflict with libboost_filesystem.so.1.62.0
bin/libCoreInt.so: undefined reference to `boost::filesystem::native(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&)'
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I don't know if the conflict is a source of linker errors but i guess it is

1

1 Answers

0
votes

There are 2 versions of shared library:

  1. libboost_system.so.1.62.0 (already existing )
  2. libboost_system.so.1.71.0 (project requirement)

Since the shared library (libboost_system.so.1.62.0) cannot be deleted. Please upgrade the existing library to libboost_system.so.1.71.0. The issue should be resolved.

But again since there is dependency on libboost_system.so.1.62.0, we could do the following:

  1. Project specific cmake file should make a reference to directory having the shared library 'libboost_system.so.1.71.0 '.

So when the project is build the executable should point to the version : libboost_system.so.1.71.0.