Hi,NormandC wrote:Find a workaround in xenial for liboce-visualization-dev not linking libfreeimage-dev properly. It's a Multi-Arch support issue. This prevents FreeCAD from building on the Daily PPA thus we have the same problem with the 0.16 release. (NormandC)
as promised I have played a bit with this issue.
I think the easiest solution would be to insert something like this between cmake command and make command:
Code: Select all
grep -rl '/usr/lib/libfreeimage.so' ./ | xargs sed -i 's/\/usr\/lib\/libfreeimage.so/\/usr\/lib\/x86_64-linux-gnu\/libfreeimage.so/g
I have checked this and it links ok. Didn't finish the build. Too slow in my VM.
Proof of correct linking:
Code: Select all
f3nix@xenial-vm:~/devel/freecad/FreeCAD/build-qt5-debug-5/lib$ ldd libStdMeshers.so | grep freeimage
libfreeimage.so.3 => /usr/lib/x86_64-linux-gnu/libfreeimage.so.3 (0x00007f0fbdbca000)
f3nix@xenial-vm:~/devel/freecad/FreeCAD/build-qt5-debug-5/lib$
Code: Select all
f3nix@xenial-vm:~/devel/freecad/FreeCAD/build-qt5-debug-5$ grep -r freeimage.so
src/3rdParty/salomesmesh/CMakeFiles/DriverDAT.dir/build.make:lib/libDriverDAT.so: /usr/lib/libfreeimage.so
src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/build.make:lib/libSMESHDS.so: /usr/lib/libfreeimage.so
src/3rdParty/salomesmesh/CMakeFiles/StdMeshers.dir/build.make:lib/libStdMeshers.so: /usr/lib/libfreeimage.so
src/3rdParty/salomesmesh/CMakeFiles/NETGENPlugin.dir/build.make:lib/libNETGENPlugin.so: /usr/lib/libfreeimage.so
src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/build.make:lib/libSMDS.so: /usr/lib/libfreeimage.so
src/3rdParty/salomesmesh/CMakeFiles/DriverUNV.dir/build.make:lib/libDriverUNV.so: /usr/lib/libfreeimage.so
src/3rdParty/salomesmesh/CMakeFiles/MEFISTO2.dir/build.make:lib/libMEFISTO2.so: /usr/lib/libfreeimage.so
src/3rdParty/salomesmesh/CMakeFiles/Driver.dir/build.make:lib/libDriver.so: /usr/lib/libfreeimage.so
src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/build.make:lib/libSMESH.so: /usr/lib/libfreeimage.so
src/3rdParty/salomesmesh/CMakeFiles/DriverSTL.dir/build.make:lib/libDriverSTL.so: /usr/lib/libfreeimage.so
src/Mod/Fem/Gui/CMakeFiles/FemGui.dir/build.make:Mod/Fem/FemGui.so: /usr/lib/libfreeimage.so
src/Mod/Fem/App/CMakeFiles/Fem.dir/build.make:Mod/Fem/Fem.so: /usr/lib/libfreeimage.so
src/Mod/PartDesign/Gui/CMakeFiles/PartDesignGui.dir/build.make:Mod/PartDesign/PartDesignGui.so: /usr/lib/libfreeimage.so
src/Mod/PartDesign/App/CMakeFiles/PartDesign.dir/build.make:Mod/PartDesign/_PartDesign.so: /usr/lib/libfreeimage.so
src/Mod/Path/Gui/CMakeFiles/PathGui.dir/build.make:Mod/Path/PathGui.so: /usr/lib/libfreeimage.so
src/Mod/Path/App/CMakeFiles/Path.dir/build.make:Mod/Path/Path.so: /usr/lib/libfreeimage.so
src/Mod/Draft/App/CMakeFiles/DraftUtils.dir/build.make:Mod/Draft/DraftUtils.so: /usr/lib/libfreeimage.so
src/Mod/Raytracing/Gui/CMakeFiles/RaytracingGui.dir/build.make:Mod/Raytracing/RaytracingGui.so: /usr/lib/libfreeimage.so
src/Mod/Raytracing/App/CMakeFiles/Raytracing.dir/build.make:Mod/Raytracing/Raytracing.so: /usr/lib/libfreeimage.so
src/Mod/MeshPart/Gui/CMakeFiles/MeshPartGui.dir/build.make:Mod/MeshPart/MeshPartGui.so: /usr/lib/libfreeimage.so
src/Mod/MeshPart/App/CMakeFiles/MeshPart.dir/build.make:Mod/MeshPart/MeshPart.so: /usr/lib/libfreeimage.so
src/Mod/Sketcher/Gui/CMakeFiles/SketcherGui.dir/build.make:Mod/Sketcher/SketcherGui.so: /usr/lib/libfreeimage.so
src/Mod/Sketcher/App/CMakeFiles/Sketcher.dir/build.make:Mod/Sketcher/Sketcher.so: /usr/lib/libfreeimage.so
src/Mod/Robot/Gui/CMakeFiles/RobotGui.dir/build.make:Mod/Robot/RobotGui.so: /usr/lib/libfreeimage.so
src/Mod/Robot/App/CMakeFiles/Robot.dir/build.make:Mod/Robot/Robot.so: /usr/lib/libfreeimage.so
src/Mod/Part/Gui/CMakeFiles/PartGui.dir/build.make:Mod/Part/PartGui.so: /usr/lib/libfreeimage.so
src/Mod/Part/App/CMakeFiles/Part.dir/build.make:Mod/Part/Part.so: /usr/lib/libfreeimage.so
src/Mod/Inspection/Gui/CMakeFiles/InspectionGui.dir/build.make:Mod/Inspection/InspectionGui.so: /usr/lib/libfreeimage.so
src/Mod/Inspection/App/CMakeFiles/Inspection.dir/build.make:Mod/Inspection/Inspection.so: /usr/lib/libfreeimage.so
src/Mod/Import/Gui/CMakeFiles/ImportGui.dir/build.make:Mod/Import/ImportGui.so: /usr/lib/libfreeimage.so
src/Mod/Import/App/CMakeFiles/Import.dir/build.make:Mod/Import/Import.so: /usr/lib/libfreeimage.so
src/Mod/Drawing/Gui/CMakeFiles/DrawingGui.dir/build.make:Mod/Drawing/DrawingGui.so: /usr/lib/libfreeimage.so
src/Mod/Drawing/App/CMakeFiles/Drawing.dir/build.make:Mod/Drawing/Drawing.so: /usr/lib/libfreeimage.so
src/Mod/ReverseEngineering/Gui/CMakeFiles/ReverseEngineeringGui.dir/build.make:Mod/ReverseEngineering/ReverseEngineeringGui.so: /usr/lib/libfreeimage.so
src/Mod/ReverseEngineering/App/CMakeFiles/ReverseEngineering.dir/build.make:Mod/ReverseEngineering/ReverseEngineering.so: /usr/lib/libfreeimage.so
f3nix@xenial-vm:~/devel/freecad/FreeCAD/build-qt5-debug-5$
Code: Select all
f3nix@xenial-vm:~/devel/freecad/FreeCAD/build-qt5-debug-5$ grep -r freeimage.so
src/3rdParty/salomesmesh/CMakeFiles/DriverDAT.dir/build.make:lib/libDriverDAT.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/build.make:lib/libSMESHDS.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/3rdParty/salomesmesh/CMakeFiles/StdMeshers.dir/build.make:lib/libStdMeshers.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/build.make:lib/libSMDS.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/3rdParty/salomesmesh/CMakeFiles/DriverUNV.dir/build.make:lib/libDriverUNV.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/3rdParty/salomesmesh/CMakeFiles/MEFISTO2.dir/build.make:lib/libMEFISTO2.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/3rdParty/salomesmesh/CMakeFiles/Driver.dir/build.make:lib/libDriver.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/build.make:lib/libSMESH.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/3rdParty/salomesmesh/CMakeFiles/DriverSTL.dir/build.make:lib/libDriverSTL.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/Fem/Gui/CMakeFiles/FemGui.dir/build.make:Mod/Fem/FemGui.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/Fem/App/CMakeFiles/Fem.dir/build.make:Mod/Fem/Fem.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/PartDesign/Gui/CMakeFiles/PartDesignGui.dir/build.make:Mod/PartDesign/PartDesignGui.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/PartDesign/App/CMakeFiles/PartDesign.dir/build.make:Mod/PartDesign/_PartDesign.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/Path/Gui/CMakeFiles/PathGui.dir/build.make:Mod/Path/PathGui.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/Path/App/CMakeFiles/Path.dir/build.make:Mod/Path/Path.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/Draft/App/CMakeFiles/DraftUtils.dir/build.make:Mod/Draft/DraftUtils.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/Raytracing/Gui/CMakeFiles/RaytracingGui.dir/build.make:Mod/Raytracing/RaytracingGui.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/Raytracing/App/CMakeFiles/Raytracing.dir/build.make:Mod/Raytracing/Raytracing.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/MeshPart/Gui/CMakeFiles/MeshPartGui.dir/build.make:Mod/MeshPart/MeshPartGui.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/MeshPart/App/CMakeFiles/MeshPart.dir/build.make:Mod/MeshPart/MeshPart.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/Sketcher/Gui/CMakeFiles/SketcherGui.dir/build.make:Mod/Sketcher/SketcherGui.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/Sketcher/App/CMakeFiles/Sketcher.dir/build.make:Mod/Sketcher/Sketcher.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/Robot/Gui/CMakeFiles/RobotGui.dir/build.make:Mod/Robot/RobotGui.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/Robot/App/CMakeFiles/Robot.dir/build.make:Mod/Robot/Robot.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/Part/Gui/CMakeFiles/PartGui.dir/build.make:Mod/Part/PartGui.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/Part/App/CMakeFiles/Part.dir/build.make:Mod/Part/Part.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/Inspection/Gui/CMakeFiles/InspectionGui.dir/build.make:Mod/Inspection/InspectionGui.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/Inspection/App/CMakeFiles/Inspection.dir/build.make:Mod/Inspection/Inspection.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/Import/Gui/CMakeFiles/ImportGui.dir/build.make:Mod/Import/ImportGui.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/Import/App/CMakeFiles/Import.dir/build.make:Mod/Import/Import.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/Drawing/Gui/CMakeFiles/DrawingGui.dir/build.make:Mod/Drawing/DrawingGui.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/Drawing/App/CMakeFiles/Drawing.dir/build.make:Mod/Drawing/Drawing.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/ReverseEngineering/Gui/CMakeFiles/ReverseEngineeringGui.dir/build.make:Mod/ReverseEngineering/ReverseEngineeringGui.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
src/Mod/ReverseEngineering/App/CMakeFiles/ReverseEngineering.dir/build.make:Mod/ReverseEngineering/ReverseEngineering.so: /usr/lib/x86_64-linux-gnu/libfreeimage.so
f3nix@xenial-vm:~/devel/freecad/FreeCAD/build-qt5-debug-5$
Code: Select all
$ cmake with options
$ grep -rl '/usr/lib/libfreeimage.so' ./ | xargs sed -i 's/\/usr\/lib\/libfreeimage.so/\/usr\/lib\/x86_64-linux-gnu\/libfreeimage.so/g
$ make -j?
Cheers,
Mateusz