[SOLVED] Compilation failure.

Having trouble installing or compiling FreeCAD? Get help here.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
fcaduser
Posts: 448
Joined: Wed Feb 19, 2014 6:53 pm
Location: Near Paris, France

[SOLVED] Compilation failure.

Post by fcaduser »

Hi FC team !
So first the context :

OS is Linux 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux

OCCT lib is the last available on github (issue 0030394) :
http://git.dev.opencascade.org/gitweb/? ... a=shortlog

Idem for the VTK lib (which I've just build this morning.)

My parameters :
FREECAD_INSTALL_DIR="/home/mainuser/softwares/freecad_2018-12-13"
OCC_DIR="/home/mainuser/softwares/occt-2ebb109"
VTK_DIR="/home/mainuser/softwares/vtk_2018-12-13/lib/cmake/vtk-8.2"

(...)

cmake .. \
-DCMAKE_BUILD_TYPE="Release" \
-DCMAKE_CXX_COMPILER="/usr/bin/mpic++" \
-DCMAKE_CXX_FLAGS="-I/usr/include/hdf5/openmpi -I/usr/include/mpi" \
-DCMAKE_INSTALL_PREFIX="$FREECAD_INSTALL_DIR" \
-DFREECAD_USE_OCC_VARIANT="Official Version" \
-DOCC_DIR="$OCC_DIR" \
-DOCC_INCLUDE_DIR="$OCC_DIR/include/opencascade" \
-DOCC_LIBRARY="$OCC_DIR/lib/libTKernel.so" \
-DOCCT_CMAKE_FALLBACK=1 \
-DVTK_DIR="$VTK_DIR" \
Here is the "make" output :
[ 0%] Built target Driver
[ 1%] Built target SMDS
[ 1%] Built target SMESHDS
[ 2%] Built target DriverUNV
[ 2%] Built target DriverDAT
[ 2%] Built target DriverSTL
[ 4%] Built target SMESH
[ 5%] Built target MEFISTO2
[ 7%] Built target StdMeshers
[ 11%] Built target FreeCADBase
[ 13%] Built target FreeCADApp
[ 27%] Built target FreeCADGui
[ 27%] Built target FreeCADMain
[ 27%] Built target FreeCADGuiPy
[ 27%] Built target FreeCADMainCmd
[ 27%] Built target FreeCADMainPy
[ 27%] Built target Points
[ 28%] Built target PointsGui
[ 28%] Built target Complete
[ 28%] Built target CompleteGui
[ 29%] Built target Test
[ 29%] Built target QtUnitGui
[ 29%] Built target ImageScripts
[ 30%] Built target Image
[ 30%] Built target ImageGui
[ 30%] Built target MeshScripts
[ 34%] Built target Mesh
[ 35%] Built target MeshGui
[ 35%] Built target PartScripts
[ 35%] Building CXX object src/Mod/Part/App/CMakeFiles/Part.dir/TopoShapePyImp.cpp.o
/home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp: In member function ‘PyObject* Part::TopoShapePy::makeChamfer(PyObject*)’:
/home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:1608:71: error: no matching function for call to ‘BRepFilletAPI_MakeChamfer::Add(double&, const TopoDS_Edge&, const TopoDS_Face&)’
mkChamfer.Add(radius, TopoDS::Edge(edge), face);
^
In file included from /home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:33:0:
/home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepFilletAPI_MakeChamfer.hxx:61:24: note: candidate: virtual void BRepFilletAPI_MakeChamfer::Add(const TopoDS_Edge&)
Standard_EXPORT void Add (const TopoDS_Edge& E) Standard_OVERRIDE;
^~~
/home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepFilletAPI_MakeChamfer.hxx:61:24: note: candidate expects 1 argument, 3 provided
/home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepFilletAPI_MakeChamfer.hxx:75:24: note: candidate: void BRepFilletAPI_MakeChamfer::Add(Standard_Real, const TopoDS_Edge&)
Standard_EXPORT void Add (const Standard_Real Dis, const TopoDS_Edge& E);
^~~
/home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepFilletAPI_MakeChamfer.hxx:75:24: note: candidate expects 2 arguments, 3 provided
/home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepFilletAPI_MakeChamfer.hxx:102:24: note: candidate: void BRepFilletAPI_MakeChamfer::Add(Standard_Real, Standard_Real, const TopoDS_Edge&, const TopoDS_Face&)
Standard_EXPORT void Add (const Standard_Real Dis1, const Standard_Real Dis2, const TopoDS_Edge& E, const TopoDS_Face& F);
^~~
/home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepFilletAPI_MakeChamfer.hxx:102:24: note: candidate expects 4 arguments, 3 provided
In file included from /home/mainuser/softwares/occt-2ebb109/include/opencascade/Standard_Type.hxx:19:0,
from /home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepMesh_DiscretRoot.hxx:18,
from /home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepMesh_IncrementalMesh.hxx:17,
from /home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:27:
/home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp: In member function ‘PyObject* Part::TopoShapePy::proximity(PyObject*)’:
/home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:2398:26: error: ‘Poly_Triangulation’ was not declared in this scope
const Handle(Poly_Triangulation)& aTriangulation =
^
/home/mainuser/softwares/occt-2ebb109/include/opencascade/Standard_Handle.hxx:463:43: note: in definition of macro ‘Handle’
#define Handle(Class) opencascade::handle<Class>
^~~~~
/home/mainuser/softwares/occt-2ebb109/include/opencascade/Standard_Handle.hxx:463:48: error: template argument 1 is invalid
#define Handle(Class) opencascade::handle<Class>
^
/home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:2398:19: note: in expansion of macro ‘Handle’
const Handle(Poly_Triangulation)& aTriangulation =
^
/home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:2399:15: error: ‘BRep_Tool’ has not been declared
BRep_Tool::Triangulation(TopoDS::Face(xp.Current()), aLoc);
^~~~~~~~~
/home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:2400:32: error: request for member ‘IsNull’ in ‘aTriangulation’, which is of non-class type ‘const int’
if (aTriangulation.IsNull()) {
^~~~~~
In file included from /home/mainuser/softwares/occt-2ebb109/include/opencascade/Standard_Type.hxx:19:0,
from /home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepMesh_DiscretRoot.hxx:18,
from /home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepMesh_IncrementalMesh.hxx:17,
from /home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:27:
/home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:2408:26: error: ‘Poly_Triangulation’ was not declared in this scope
const Handle(Poly_Triangulation)& aTriangulation =
^
/home/mainuser/softwares/occt-2ebb109/include/opencascade/Standard_Handle.hxx:463:43: note: in definition of macro ‘Handle’
#define Handle(Class) opencascade::handle<Class>
^~~~~
/home/mainuser/softwares/occt-2ebb109/include/opencascade/Standard_Handle.hxx:463:48: error: template argument 1 is invalid
#define Handle(Class) opencascade::handle<Class>
^
/home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:2408:19: note: in expansion of macro ‘Handle’
const Handle(Poly_Triangulation)& aTriangulation =
^
/home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:2409:15: error: ‘BRep_Tool’ has not been declared
BRep_Tool::Triangulation(TopoDS::Face(xp.Current()), aLoc);
^~~~~~~~~
/home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:2410:32: error: request for member ‘IsNull’ in ‘aTriangulation’, which is of non-class type ‘const int’
if (aTriangulation.IsNull()) {
^~~~~~
In file included from /home/mainuser/softwares/occt-2ebb109/include/opencascade/Standard_Type.hxx:19:0,
from /home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepMesh_DiscretRoot.hxx:18,
from /home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepMesh_IncrementalMesh.hxx:17,
from /home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:27:
/home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:2419:26: error: ‘Poly_Polygon3D’ was not declared in this scope
const Handle(Poly_Polygon3D)& aPoly3D =
^
/home/mainuser/softwares/occt-2ebb109/include/opencascade/Standard_Handle.hxx:463:43: note: in definition of macro ‘Handle’
#define Handle(Class) opencascade::handle<Class>
^~~~~
/home/mainuser/softwares/occt-2ebb109/include/opencascade/Standard_Handle.hxx:463:48: error: template argument 1 is invalid
#define Handle(Class) opencascade::handle<Class>
^
/home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:2419:19: note: in expansion of macro ‘Handle’
const Handle(Poly_Polygon3D)& aPoly3D =
^
/home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:2420:15: error: ‘BRep_Tool’ has not been declared
BRep_Tool::Polygon3D(TopoDS::Edge(xp.Current()), aLoc);
^~~~~~~~~
/home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:2421:25: error: request for member ‘IsNull’ in ‘aPoly3D’, which is of non-class type ‘const int’
if (aPoly3D.IsNull()) {
^~~~~~
In file included from /home/mainuser/softwares/occt-2ebb109/include/opencascade/Standard_Type.hxx:19:0,
from /home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepMesh_DiscretRoot.hxx:18,
from /home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepMesh_IncrementalMesh.hxx:17,
from /home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:27:
/home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:2429:26: error: ‘Poly_Polygon3D’ was not declared in this scope
const Handle(Poly_Polygon3D)& aPoly3D =
^
/home/mainuser/softwares/occt-2ebb109/include/opencascade/Standard_Handle.hxx:463:43: note: in definition of macro ‘Handle’
#define Handle(Class) opencascade::handle<Class>
^~~~~
/home/mainuser/softwares/occt-2ebb109/include/opencascade/Standard_Handle.hxx:463:48: error: template argument 1 is invalid
#define Handle(Class) opencascade::handle<Class>
^
/home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:2429:19: note: in expansion of macro ‘Handle’
const Handle(Poly_Polygon3D)& aPoly3D =
^
/home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:2430:15: error: ‘BRep_Tool’ has not been declared
BRep_Tool::Polygon3D(TopoDS::Edge(xp.Current()), aLoc);
^~~~~~~~~
/home/mainuser/softwares/freecad_source/src/Mod/Part/App/TopoShapePyImp.cpp:2431:25: error: request for member ‘IsNull’ in ‘aPoly3D’, which is of non-class type ‘const int’
if (aPoly3D.IsNull()) {
^~~~~~
src/Mod/Part/App/CMakeFiles/Part.dir/build.make:2318 : la recette pour la cible « src/Mod/Part/App/CMakeFiles/Part.dir/TopoShapePyImp.cpp.o » a échouée
make[2]: *** [src/Mod/Part/App/CMakeFiles/Part.dir/TopoShapePyImp.cpp.o] Erreur 1
CMakeFiles/Makefile2:1850 : la recette pour la cible « src/Mod/Part/App/CMakeFiles/Part.dir/all » a échouée
make[1]: *** [src/Mod/Part/App/CMakeFiles/Part.dir/all] Erreur 2
Makefile:127 : la recette pour la cible « all » a échouée
make: *** [all] Erreur 2
Last edited by fcaduser on Fri Dec 14, 2018 7:00 pm, edited 2 times in total.
wmayer
Founder
Posts: 20309
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: Compilation failure.

Post by wmayer »

There was a change on the interface of BRepFilletAPI_MakeChamfer: https://git.dev.opencascade.org/gitweb/ ... 66525b10e3
This method

Code: Select all

  Standard_EXPORT void Add (const Standard_Real Dis, const TopoDS_Edge& E, const TopoDS_Face& F);
has been replaced with

Code: Select all

  Standard_EXPORT void Add (const Standard_Real Dis1, const Standard_Real Dis2, const TopoDS_Edge& E, const TopoDS_Face& F);
Then the missing class declarations is because the corresponding headers are not included. Obviously no problem with older OCCT versions.
wmayer
Founder
Posts: 20309
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: Compilation failure.

Post by wmayer »

fcaduser
Posts: 448
Joined: Wed Feb 19, 2014 6:53 pm
Location: Near Paris, France

Re: Compilation failure.

Post by fcaduser »

Thank you.
Just pulled the modified code and redone everything from scratch, the compilation goes some steps further but stops at this point :
[ 0%] Built target Driver
[ 1%] Built target SMDS
[ 1%] Built target SMESHDS
[ 2%] Built target DriverUNV
[ 2%] Built target DriverDAT
[ 2%] Built target DriverSTL
[ 4%] Built target SMESH
[ 5%] Built target MEFISTO2
[ 7%] Built target StdMeshers
[ 11%] Built target FreeCADBase
[ 13%] Built target FreeCADApp
[ 27%] Built target FreeCADGui
[ 27%] Built target FreeCADMain
[ 27%] Built target FreeCADGuiPy
[ 27%] Built target FreeCADMainCmd
[ 27%] Built target FreeCADMainPy
[ 27%] Built target Points
[ 28%] Built target PointsGui
[ 28%] Built target Complete
[ 28%] Built target CompleteGui
[ 29%] Built target Test
[ 29%] Built target QtUnitGui
[ 29%] Built target ImageScripts
[ 30%] Built target Image
[ 30%] Built target ImageGui
[ 30%] Built target MeshScripts
[ 34%] Built target Mesh
[ 35%] Built target MeshGui
[ 35%] Built target PartScripts
[ 40%] Built target Part
[ 44%] Built target PartGui
[ 44%] Built target Material
[ 44%] Built target FluidMaterialLib
[ 44%] Built target MaterialLib
[ 45%] Built target PartDesignScripts
[ 45%] Built target WizardShaft
[ 45%] Building CXX object src/Mod/PartDesign/App/CMakeFiles/PartDesign.dir/FeatureChamfer.cpp.o
/home/mainuser/softwares/freecad_source/src/Mod/PartDesign/App/FeatureChamfer.cpp: In member function ‘virtual App::DocumentObjectExecReturn* PartDesign::Chamfer::execute()’:
/home/mainuser/softwares/freecad_source/src/Mod/PartDesign/App/FeatureChamfer.cpp:105:43: error: no matching function for call to ‘BRepFilletAPI_MakeChamfer::Add(double&, TopoDS_Edge&, const TopoDS_Face&)’
mkChamfer.Add(size, edge, face);
^
In file included from /home/mainuser/softwares/freecad_source/src/Mod/PartDesign/App/FeatureChamfer.cpp:27:0:
/home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepFilletAPI_MakeChamfer.hxx:61:24: note: candidate: virtual void BRepFilletAPI_MakeChamfer::Add(const TopoDS_Edge&)
Standard_EXPORT void Add (const TopoDS_Edge& E) Standard_OVERRIDE;
^~~
/home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepFilletAPI_MakeChamfer.hxx:61:24: note: candidate expects 1 argument, 3 provided
/home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepFilletAPI_MakeChamfer.hxx:75:24: note: candidate: void BRepFilletAPI_MakeChamfer::Add(Standard_Real, const TopoDS_Edge&)
Standard_EXPORT void Add (const Standard_Real Dis, const TopoDS_Edge& E);
^~~
/home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepFilletAPI_MakeChamfer.hxx:75:24: note: candidate expects 2 arguments, 3 provided
/home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepFilletAPI_MakeChamfer.hxx:102:24: note: candidate: void BRepFilletAPI_MakeChamfer::Add(Standard_Real, Standard_Real, const TopoDS_Edge&, const TopoDS_Face&)
Standard_EXPORT void Add (const Standard_Real Dis1, const Standard_Real Dis2, const TopoDS_Edge& E, const TopoDS_Face& F);
^~~
/home/mainuser/softwares/occt-2ebb109/include/opencascade/BRepFilletAPI_MakeChamfer.hxx:102:24: note: candidate expects 4 arguments, 3 provided
src/Mod/PartDesign/App/CMakeFiles/PartDesign.dir/build.make:752 : la recette pour la cible « src/Mod/PartDesign/App/CMakeFiles/PartDesign.dir/FeatureChamfer.cpp.o » a échouée
make[2]: *** [src/Mod/PartDesign/App/CMakeFiles/PartDesign.dir/FeatureChamfer.cpp.o] Erreur 1
CMakeFiles/Makefile2:2197 : la recette pour la cible « src/Mod/PartDesign/App/CMakeFiles/PartDesign.dir/all » a échouée
make[1]: *** [src/Mod/PartDesign/App/CMakeFiles/PartDesign.dir/all] Erreur 2
Makefile:127 : la recette pour la cible « all » a échouée
make: *** [all] Erreur 2
wmayer
Founder
Posts: 20309
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: Compilation failure.

Post by wmayer »

fcaduser
Posts: 448
Joined: Wed Feb 19, 2014 6:53 pm
Location: Near Paris, France

Re: Compilation failure.

Post by fcaduser »

It's successful. Thank you for your help.
User avatar
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Re: [SOLVED] Compilation failure.

Post by Kunda1 »

fcaduser wrote: Fri Dec 14, 2018 6:59 pm It's successful. Thank you for your help.
Please mark the thread as [Solved] by tweaking the summary of the initial post. Thanks.
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
fcaduser
Posts: 448
Joined: Wed Feb 19, 2014 6:53 pm
Location: Near Paris, France

Re: [SOLVED] Compilation failure.

Post by fcaduser »

? I don't understand, it's already done.
Post Reply