Linking errors when build examples
OS: Win10, Compiler: MSVC for VS 15, latest source of ParaView in master branch.
When I try to build an Example from ParaView/Examples/, I got same linking error every time. Take "MultiServerClient" for example,
1>pqmultiserverclientInitializer.obj : error LNK2019: unresolved external symbol "void __cdecl vtkInteractionStyle_AutoInit_Construct(void)" (?vtkInteractionStyle_AutoInit_Construct@@YAXXZ),referenced in function "public: __cdecl vtkRenderingCore_AutoInit::vtkRenderingCore_AutoInit(void)" (??0vtkRenderingCore_AutoInit@@QEAA@XZ)
1>pqmultiserverclientInitializer.obj : error LNK2019: unresolved external symbol "void __cdecl vtkInteractionStyle_AutoInit_Destruct(void)" (?vtkInteractionStyle_AutoInit_Destruct@@YAXXZ),referenced in function "public: __cdecl vtkRenderingCore_AutoInit::~vtkRenderingCore_AutoInit(void)" (??1vtkRenderingCore_AutoInit@@QEAA@XZ)
1>pqmultiserverclientInitializer.obj : error LNK2019: unresolved external symbol "void __cdecl vtkRenderingFreeType_AutoInit_Construct(void)" (?vtkRenderingFreeType_AutoInit_Construct@@YAXXZ),referenced in function "public: __cdecl vtkRenderingCore_AutoInit::vtkRenderingCore_AutoInit(void)" (??0vtkRenderingCore_AutoInit@@QEAA@XZ)
1>pqmultiserverclientInitializer.obj : error LNK2019: unresolved external symbol "void __cdecl vtkRenderingFreeType_AutoInit_Destruct(void)" (?vtkRenderingFreeType_AutoInit_Destruct@@YAXXZ),referenced in function "public: __cdecl vtkRenderingCore_AutoInit::~vtkRenderingCore_AutoInit(void)" (??1vtkRenderingCore_AutoInit@@QEAA@XZ)
It occurs in building any one of the examples. It also occurs when I try to build VeloView with the these prebuilt ParaView binaries.
The linking error can be fixed in CMakeLists.txt by adding target_link_libraries(${Name} LINK_PRIVATE vtkPVServerManagerDefault)
which is copied from ParaView application itself. Thus I guess the problem is due to some linking configuration in CMake macro build_paraview_client
.
Besides, there's another issue in ParaView/Examples/Spreadsheet. Although pqDisplayPolicy
is deprecated in commit 8be79855, it's still used here in the example which will prevent it from being compiled successfully.