Missing libboost_filesystem-mt library.

Having trouble installing or compiling FreeCAD? Get help here.
Post Reply
bazina
Posts: 6
Joined: Sat Mar 09, 2013 5:08 pm

Missing libboost_filesystem-mt library.

Post by bazina »

Hello FC team.

First the context (Debian testing) :

>> uname -a

<< Linux station1 3.10-2-amd64 #1 SMP Debian 3.10.7-1 (2013-08-17) x86_64 GNU/Linux

"git pull" and "cmake ." worked fine but "make" failed :

>> make

<< [ 0%] Built target coin
<< [ 1%] Built target soqt
<< [ 1%] Built target Driver
<< [ 2%] Built target SMDS
<< [ 2%] Built target DriverDAT
<< [ 3%] Built target DriverSTL
<< [ 4%] Built target SMESHDS
<< [ 4%] Built target DriverUNV
<< [ 4%] Built target MEFISTO2
<< [ 5%] Built target SMESH
<< [ 7%] Built target StdMeshers
<< Scanning dependencies of target FreeCADBase
<< [ 7%] Building CXX object src/Base/CMakeFiles/FreeCADBase.dir/swigpyrun.cpp.o
<< make[2]: *** Pas de règle pour fabriquer la cible « /usr/lib/libboost_filesystem-mt.so », nécessaire pour « lib/libFreeCADBase.so ». Arrêt.
<< make[1]: *** [src/Base/CMakeFiles/FreeCADBase.dir/all] Erreur 2
<< make: *** [all] Erreur 2

The error message means : No rule to build target « /usr/lib/libboost_filesystem-mt.so », required by « lib/libFreeCADBase.so ». Stop.

So I've jumped to "http://packages.debian.org/" to find the culprit.
The site indicates :

File...........................................Packages [provides the previous file]
/usr/lib/libboost_filesystem-mt.a.....libboost-filesystem1.49-dev
/usr/lib/libboost_filesystem-mt.so....libboost-filesystem1.49-dev

But there is no such file installed on my system :

>> find /lib /usr/lib -iname '*libboost_filesystem-mt*'

<< [returns nothing]

Actually, there is a newer package installed and outdating "libboost-filesystem1.49-dev".

>> dpkg -l | grep libboost-filesystem

<< ii libboost-filesystem-dev 1.54.0.1 amd64 filesystem operations (portable paths, iteration over directories, etc) in C++ (default version)
<< ii libboost-filesystem1.54-dev 1.54.0-2 amd64 filesystem operations (portable paths, iteration over directories, etc) in C++
<< ii libboost-filesystem1.54.0 1.54.0-2 amd64 filesystem operations (portable paths, iteration over directories, etc) in C++

Without surprise the Debian package manager refuses to install both versions of libboost-filesystem-dev.
So the point is : is it possible to install a parallel local library (so in this case older) without too much hassle (or worst, fiddling about) ?

Thanks.
wmayer
Founder
Posts: 19963
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: Missing libboost_filesystem-mt library.

Post by wmayer »

Without surprise the Debian package manager refuses to install both versions of libboost-filesystem-dev.
So the point is : is it possible to install a parallel local library (so in this case older) without too much hassle (or worst, fiddling about) ?
Installing two versions of libboost-filesystem-dev is not possible because they want to write their header files to the same location. That's why Debian marks them as conflicting packages. It's best to prefer this version which Debian marks as the default.
User avatar
yorik
Founder
Posts: 13466
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: Missing libboost_filesystem-mt library.

Post by yorik »

The name of almost all libboost libraries changed. libboost_filesystem-mt.so is now called libboost_filesystem.so (they removed the mt suffix). Same for all other boost libs.
Your problem happens because your cmake file still holds old library names. 2 ways to solve:
- Rebuild freecad from scratch in an empty directory
- Install cmake-gui, run "cmake-gui ." from within your build directory, tick the "advanced" checkbox (that shows all library paths), put "-mt.so" in the filter box to show only libraries with such names, you'll see all the boost libs. Simply remove "-mt" from all of them, then press the configure and generate buttons, and it should work...
bazina
Posts: 6
Joined: Sat Mar 09, 2013 5:08 pm

Re: Missing libboost_filesystem-mt library.

Post by bazina »

I finally removed everything and successffuly rebuilt from scratch. That was that simple.
Thank you.
Post Reply