Building OCC 7.4.0 with VS 2019

Hi gentlemen, I tried to build OCC 7.4.0 with VS2019 16.6.0 (vc142 toolkit), with Windows 10. Unfortunately for some projects like TKTopAlgo the built never ends...
After some searches it seems there is a bug in VS2019.
The only solution I found is to disable optimization (replace /O2, /O1, Ox by Od)

I would like to know if you are aware of this problem and maybe have a better solution ?

Thanks.
Best regards.
Jerome.

Kirill Gavrilov's picture

VS2019 users already posted building issues:
https://www.opencascade.com/content/visual-studio-2019-version-1644-hang...

But so far, nobody reported issue to Visual Studio developers in acceptable way. So it would be great to submit a report and pay attention of compiler developers.

Thomas Moreau's picture

Hi !

When compiling Data Exchange files, I get some compiling errors.

I got first the same errors as Francois. It's resolved thanks to Roman.

But now, I still have a problem when compiling IGESSelect_EditHeader.cxx:

error C2664: 'SetSatisfies' : cannot convert parameter 1 from 'unsigned int (const class Handle_TCollection_HAsciiString &)' to 'unsigned int (__cdecl *const & )(const class Handle_TCo llection_HAsciiString &)'

Context does not allow for disambiguation of overloaded function

Do you have any idea ?

Thanks, Thomas

Roman Lygin's picture

Dear Thomas,

You might met the same problem compiling other sources that use any of the following:

1. MoniTool_ValueSatisfies, 2. MoniTool_ValueInterpret, 3. IFSelect_ActFunc

(or their aliases as, for instance, Interface_TypedValue which is MoniTool_TypedValue).

The reason of the fail is that WNT cannot accept syntax like "const TYPE&" where TYPE is a pointer to a function, it requires just "const TYPE".

This problem is already fixed and the fix will be available in PR4. To proceed now please rename the following header files *_wnt.hxx files to corresponding *.hxx without suffix "_wnt":

1. MoniTool_TypedValue_wnt.hxx, 2. IFSelect_Act_wnt.hxx

Good luck !

Best regards, Roman