[Issue identified] [Workaround found] [FreeCAD 0.16] SMESH Error

Having trouble installing or compiling FreeCAD? Get help here.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
drei
Posts: 479
Joined: Sun May 11, 2014 7:47 pm
Location: Mexico
Contact:

[Issue identified] [Workaround found] [FreeCAD 0.16] SMESH Error

Post by drei »

Update
I've detected that the issue lies with some sort of incompatibility between FreeCAD 0.16 (most likely SMESH, it always is SMESH :| ) code and OCCT7. Switching to OCE (git master) has solved the issue for the time being. Currently compiling at 36%.
If anyone is interested in investigating more on the issue with OCCT7, please let me know. Not good at coding, but I can help test proposed solutions and extract data from my tests.


Original post

So I had the brilliant idea of having two versions of FreeCAD on the same machine. 017 works just fine, wanted to use 0.16 bit for some specific reasons. Unfortunately 0.16 compilation fails. Has anyone experienced something similar?

Stituation:
Downloaded source code release for 0.16 from Github releases, used CMake GUI to set flags without errors at this stage. Compilation fails at SMESH. Complete console output below.

System specs:

Code: Select all

[isaac@Gungnir Programs]$ screenfetch
                   -`
                  .o+`                 isaac@Gungnir
                 `ooo/                 OS: Arch Linux 
                `+oooo:                Kernel: x86_64 Linux 4.7.3-2-ARCH
               `+oooooo:               Uptime: 2h 23m
               -+oooooo+:              Packages: 901
             `/:-:++oooo+:             Shell: bash 4.3.46
            `/++++/+++++++:            Resolution: 1366x768
           `/++++++++++++++:           DE: KDE5
          `/+++ooooooooooooo/`         WM: KWin
         ./ooosssso++osssssso+`        GTK Theme: Breeze-Dark [GTK2/3]
        .oossssso-````/ossssss+`       Icon Theme: breeze-dark
       -osssssso.      :ssssssso.      Font: Ubuntu Regular
      :osssssss/        osssso+++.     CPU: Intel Core i5-3337U CPU @ 1.7GHz
     /ossssssss/        +ssssooo/-     RAM: 1475MiB / 7870MiB
   `/ossssso+/:-        -:/+osssso+-  
  `+sso+:-`                 `.-/+oso: 
 `++:.                           `-/+/
 .`                                 `/

OCCT 7, compiled from source code, obtained via downloaded tarball from official opencascade website.

Code: Select all

Scanning dependencies of target SMDS
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_EdgePosition.cpp.o                                                            
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_FaceOfEdges.cpp.o                                                             
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_FaceOfNodes.cpp.o                                                             
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_FacePosition.cpp.o                                                            
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_IteratorOfElements.cpp.o                                                      
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MemoryLimit.cpp.o                                                             
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_Mesh.cpp.o                                                                    
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshEdge.cpp.o                                                                
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshElement.cpp.o                                                             
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshElementIDFactory.cpp.o                                                    
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshFace.cpp.o                                                                
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshGroup.cpp.o                                                               
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshIDFactory.cpp.o                                                           
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshNode.cpp.o                                                                
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshObject.cpp.o                                                              
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_MeshVolume.cpp.o                                                              
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_PolygonalFaceOfNodes.cpp.o                                                    
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_PolyhedralVolumeOfNodes.cpp.o                                                 
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_Position.cpp.o                                                                
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_QuadraticEdge.cpp.o                                                           
[  0%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_QuadraticFaceOfNodes.cpp.o                                                    
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_QuadraticVolumeOfNodes.cpp.o                                                  
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_SpacePosition.cpp.o                                                           
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_VertexPosition.cpp.o                                                          
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_VolumeOfFaces.cpp.o                                                           
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_VolumeOfNodes.cpp.o                                                           
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMDS.dir/src/SMDS/SMDS_VolumeTool.cpp.o                                                              
/home/isaac/Programs/FreeCAD-0.16/src/3rdParty/salomesmesh/src/SMDS/SMDS_VolumeTool.cpp: In member function ‘int SMDS_VolumeTool::GetOppFaceIndex(int) const’:
/home/isaac/Programs/FreeCAD-0.16/src/3rdParty/salomesmesh/src/SMDS/SMDS_VolumeTool.cpp:1042:7: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
       if ( faceIndex == 0 || faceIndex == 1 )
       ^~
/home/isaac/Programs/FreeCAD-0.16/src/3rdParty/salomesmesh/src/SMDS/SMDS_VolumeTool.cpp:1044:9: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
         break;
         ^~~~~
[  1%] Linking CXX shared library ../../../lib/libSMDS.so
[  1%] Built target SMDS
Scanning dependencies of target Driver
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/Driver.dir/src/Driver/Driver_Document.cpp.o                                                          
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/Driver.dir/src/Driver/Driver_Mesh.cpp.o                                                              
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/Driver.dir/src/Driver/Driver_SMDS_Mesh.cpp.o                                                         
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/Driver.dir/src/Driver/Driver_SMESHDS_Mesh.cpp.o                                                      
[  2%] Linking CXX shared library ../../../lib/libDriver.so
[  2%] Built target Driver
Scanning dependencies of target DriverDAT
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverDAT.dir/src/DriverDAT/DAT_Test.cpp.o                                                           
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverDAT.dir/src/DriverDAT/DriverDAT_R_SMDS_Mesh.cpp.o                                              
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverDAT.dir/src/DriverDAT/DriverDAT_R_SMESHDS_Document.cpp.o                                       
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverDAT.dir/src/DriverDAT/DriverDAT_R_SMESHDS_Mesh.cpp.o                                           
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverDAT.dir/src/DriverDAT/DriverDAT_W_SMDS_Mesh.cpp.o                                              
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverDAT.dir/src/DriverDAT/DriverDAT_W_SMESHDS_Document.cpp.o                                       
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverDAT.dir/src/DriverDAT/DriverDAT_W_SMESHDS_Mesh.cpp.o                                           
[  2%] Linking CXX shared library ../../../lib/libDriverDAT.so
[  2%] Built target DriverDAT
Scanning dependencies of target SMESHDS
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/src/SMESHDS/SMESHDS_Command.cpp.o                                                        
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/src/SMESHDS/SMESHDS_Document.cpp.o                                                       
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/src/SMESHDS/SMESHDS_Group.cpp.o                                                          
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/src/SMESHDS/SMESHDS_GroupBase.cpp.o                                                      
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/src/SMESHDS/SMESHDS_GroupOnGeom.cpp.o                                                    
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/src/SMESHDS/SMESHDS_Hypothesis.cpp.o                                                     
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/src/SMESHDS/SMESHDS_Mesh.cpp.o                                                           
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/src/SMESHDS/SMESHDS_Script.cpp.o                                                         
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/src/SMESHDS/SMESHDS_SubMesh.cpp.o                                                        
[  2%] Linking CXX shared library ../../../lib/libSMESHDS.so
[  2%] Built target SMESHDS
Scanning dependencies of target DriverUNV
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverUNV.dir/src/DriverUNV/DriverUNV_R_SMDS_Mesh.cpp.o                                              
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverUNV.dir/src/DriverUNV/DriverUNV_R_SMESHDS_Document.cpp.o                                       
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverUNV.dir/src/DriverUNV/DriverUNV_R_SMESHDS_Mesh.cpp.o                                           
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverUNV.dir/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cpp.o                                              
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverUNV.dir/src/DriverUNV/DriverUNV_W_SMESHDS_Document.cpp.o                                       
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverUNV.dir/src/DriverUNV/DriverUNV_W_SMESHDS_Mesh.cpp.o                                           
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverUNV.dir/src/DriverUNV/UNV2411_Structure.cpp.o                                                  
[  2%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverUNV.dir/src/DriverUNV/UNV2412_Structure.cpp.o                                                  
[  3%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverUNV.dir/src/DriverUNV/UNV2417_Structure.cpp.o                                                  
[  3%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverUNV.dir/src/DriverUNV/UNV_Test.cpp.o                                                           
[  3%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverUNV.dir/src/DriverUNV/UNV_Utilities.cpp.o                                                      
[  3%] Linking CXX shared library ../../../lib/libDriverUNV.so
[  3%] Built target DriverUNV
Scanning dependencies of target DriverSTL
[  3%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp.o                                              
[  3%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverSTL.dir/src/DriverSTL/DriverSTL_W_SMDS_Mesh.cpp.o                                              
[  3%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverSTL.dir/src/DriverSTL/STL_Test.cpp.o                                                           
[  3%] Linking CXX shared library ../../../lib/libDriverSTL.so
[  3%] Built target DriverSTL
Scanning dependencies of target SMESH
[  3%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_0D_Algo.cpp.o                                                              
In file included from /home/isaac/Programs/FreeCAD-0.16/src/3rdParty/salomesmesh/inc/SMESH_Gen.hxx:42:0,
                 from /home/isaac/Programs/FreeCAD-0.16/src/3rdParty/salomesmesh/src/SMESH/SMESH_0D_Algo.cpp:28:
/home/isaac/Programs/FreeCAD-0.16/src/3rdParty/salomesmesh/inc/SMESH_Mesh.hxx:50:7: error: using typedef-name ‘TopTools_ListOfShape’ after ‘class’
 class TopTools_ListOfShape;
       ^~~~~~~~~~~~~~~~~~~~
In file included from /opt/opencascade7/include/opencascade/TopTools_IndexedDataMapOfShapeListOfShape.hxx:21:0,
                 from /home/isaac/Programs/FreeCAD-0.16/src/3rdParty/salomesmesh/inc/SMESH_Mesh.hxx:42,
                 from /home/isaac/Programs/FreeCAD-0.16/src/3rdParty/salomesmesh/inc/SMESH_Gen.hxx:42,
                 from /home/isaac/Programs/FreeCAD-0.16/src/3rdParty/salomesmesh/src/SMESH/SMESH_0D_Algo.cpp:28:
/opt/opencascade7/include/opencascade/TopTools_ListOfShape.hxx:23:40: note: ‘TopTools_ListOfShape’ has a previous declaration here
 typedef NCollection_List<TopoDS_Shape> TopTools_ListOfShape;
                                        ^~~~~~~~~~~~~~~~~~~~
make[2]: *** [src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/build.make:63: src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_0D_Algo.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:536: src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/all] Error 2
make: *** [Makefile:128: all] Error 2
[isaac@Gungnir FreeCAD-0.16-build]$ make clean
[isaac@Gungnir FreeCAD-0.16-build]$ make >> ../freecad-error-log.txt
/home/isaac/Programs/FreeCAD-0.16/src/3rdParty/salomesmesh/src/SMDS/SMDS_VolumeTool.cpp: In member function ‘int SMDS_VolumeTool::GetOppFaceIndex(int) const’:
/home/isaac/Programs/FreeCAD-0.16/src/3rdParty/salomesmesh/src/SMDS/SMDS_VolumeTool.cpp:1042:7: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
       if ( faceIndex == 0 || faceIndex == 1 )
       ^~
/home/isaac/Programs/FreeCAD-0.16/src/3rdParty/salomesmesh/src/SMDS/SMDS_VolumeTool.cpp:1044:9: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
         break;
         ^~~~~
In file included from /home/isaac/Programs/FreeCAD-0.16/src/3rdParty/salomesmesh/inc/SMESH_Gen.hxx:42:0,
                 from /home/isaac/Programs/FreeCAD-0.16/src/3rdParty/salomesmesh/src/SMESH/SMESH_0D_Algo.cpp:28:
/home/isaac/Programs/FreeCAD-0.16/src/3rdParty/salomesmesh/inc/SMESH_Mesh.hxx:50:7: error: using typedef-name ‘TopTools_ListOfShape’ after ‘class’
 class TopTools_ListOfShape;
       ^~~~~~~~~~~~~~~~~~~~
In file included from /opt/opencascade7/include/opencascade/TopTools_IndexedDataMapOfShapeListOfShape.hxx:21:0,
                 from /home/isaac/Programs/FreeCAD-0.16/src/3rdParty/salomesmesh/inc/SMESH_Mesh.hxx:42,
                 from /home/isaac/Programs/FreeCAD-0.16/src/3rdParty/salomesmesh/inc/SMESH_Gen.hxx:42,
                 from /home/isaac/Programs/FreeCAD-0.16/src/3rdParty/salomesmesh/src/SMESH/SMESH_0D_Algo.cpp:28:
/opt/opencascade7/include/opencascade/TopTools_ListOfShape.hxx:23:40: note: ‘TopTools_ListOfShape’ has a previous declaration here
 typedef NCollection_List<TopoDS_Shape> TopTools_ListOfShape;
                                        ^~~~~~~~~~~~~~~~~~~~
make[2]: *** [src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/build.make:63: src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_0D_Algo.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:536: src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/all] Error 2
make: *** [Makefile:128: all] Error 2

Need help? Feel free to ask, but please read the guidelines first
Post Reply