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.
Missing libboost_filesystem-mt library.
Re: Missing libboost_filesystem-mt library.
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.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) ?
Re: Missing libboost_filesystem-mt library.
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...
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...
Re: Missing libboost_filesystem-mt library.
I finally removed everything and successffuly rebuilt from scratch. That was that simple.
Thank you.
Thank you.