For all issues regarding the Forums use, please, refer to the Forum Rules.

Our Solutions

Need professional assistance?
Consider our:

Support Offerings

 

Need to speed up your development?
Have a look at our:

Samples & Tools

 

Need some functionality extending standard OCCT capabilities?
Check out our:

Adv. Components

Related pages

Problems in updating to OPC 7.2

Federico Carminati's picture
Forums: 

Hello,

I am not entirely sure this is the right forum . I installed the latest FreeCAD with netgen support and I encountered the following problem

nglib/netgen has the following three undefined references

/usr/local/lib/libocc.dylib: U StlAPI_Writer::Write(TopoDS_Shape const&, char const*)
/usr/local/lib/libocc.dylib: U StlAPI_Writer::ASCIIMode()
/usr/local/lib/libocc.dylib: U StlAPI_Writer::StlAPI_Writer()

In OPC 7.1.0 we have 

/usr/local/Cellar/opencascade/7.1.0_1/lib/libTKSTL.7.1.0.dylib: 00000000000088f0 T StlAPI_Writer::Write(TopoDS_Shape const&, char const*)
/usr/local/Cellar/opencascade/7.1.0_1/lib/libTKSTL.7.1.0.dylib: 00000000000088e6 T StlAPI_Writer::ASCIIMode()
/usr/local/Cellar/opencascade/7.1.0_1/lib/libTKSTL.7.1.0.dylib: 00000000000088dc T StlAPI_Writer::StlAPI_Writer()
/usr/local/Cellar/opencascade/7.1.0_1/lib/libTKSTL.7.1.0.dylib: 0000000000008870 T StlAPI_Writer::StlAPI_Writer()

While in OPC 7.2.0 we have

/usr/local/Cellar/opencascade/7.2.0/lib/libTKSTL.7.2.0.dylib: 0000000000006734 T StlAPI_Writer::Write(TopoDS_Shape const&, char const*)
/usr/local/Cellar/opencascade/7.2.0/lib/libTKSTL.7.2.0.dylib: 000000000000672a T StlAPI_Writer::StlAPI_Writer()
/usr/local/Cellar/opencascade/7.2.0/lib/libTKSTL.7.2.0.dylib: 0000000000006720 T StlAPI_Writer::StlAPI_Writer()

So the StlAPI_Writer::ASCIIMode() is undefined when I switch to 7.2. The code is still there, but if I understand correctly, the method went from an exported reference to an internal one in the dylib 

/usr/local/Cellar/opencascade/7.1.0_1/include/opencascade/StlAPI_Writer.hxx
//! default parameters: ASCIIMode.
Standard_EXPORT Standard_Boolean& ASCIIMode();
Standard_Boolean theASCIIMode;
/usr/local/Cellar/opencascade/7.2.0/include/opencascade/StlAPI_Writer.hxx
//! Creates a writer object with default parameters: ASCIIMode.
Standard_Boolean& ASCIIMode() { return myASCIIMode; }
Standard_Boolean myASCIIMode;

Kirill Gavrilov's picture

So the StlAPI_Writer::ASCIIMode() is undefined when I switch to 7.2. The code is still there, but if I understand correctly, the method went from an exported reference to an internal one in the dylib 

It is not "internal" - it is just inline now (means that the method is inlined into application by a compiler rather than resolved by a linker).

Most OCCT releases have no ABI compatibility (and minor releases with second number 7.X changed are certainly not).
This means, that you cannot replace OCCT libraries of another version without re-compiling the application (and in case if you have several components depending on OCCT - they all should be recompiled using the same version of OCCT).

Contact us

Attention: DO NOT use this form for all kind of request for the removal of your personal data. Please follow this link for such cases.