OpenXR Problem

I got vtk9.4.0.rc2,compile and get error as this,someone can help! vtk9.3.0 is ok.

“/MANIFESTDEPENDENCY:type=‘win32’ name=‘Microsoft.Windows.Common-Controls’ version=‘6.0.0.0’ publicKeyToken=‘6595b64144ccf1df’ language=‘’ processorArchitecture='’” /MANIFEST:embed /OUT:…..\VTK\VTK-9.4.0.rc2\bin\bin\XRRenderEngine.exe @C:\Users\Lenovo\AppData\Local\Temp\XRRenderEngine.exe.18700.8281.jom
vtkPVXRInterfaceHelper.obj : error LNK2019: 无法解析的外部符号 “__declspec(dllimport) public: static class vtkVRRay * __cdecl vtkVRRay::SafeDownCast(class vtkObjectBase *)” (_imp?SafeDownCast@vtkVRRay@@SAPEAV1@PEAVvtkObjectBase@@@Z),该符号在函数 “protected: bool __cdecl vtkPVXRInterfaceHelper::EventCallback(class vtkObject *,unsigned long,void *)” (?EventCallback@vtkPVXRInterfaceHelper@@IEAA_NPEAVvtkObject@@KPEAX@Z) 中被引用
vtkPVXRInterfaceHelper.obj : error LNK2001: 无法解析的外部符号 vtk_glad_glBlitFramebuffer

I’m not seeing where XRRenderEngine.exe comes from. It looks like there might be a missing link to VTK::RenderingVRModels?

Cc: @scottwittenburg

I’m confused as to what’s going on in that error output. I’m not familiar with XRRenderEngine.exe, if it is a target in VTK, I don’t recall having seen it before. Otherwise, maybe it’s a target in some dependent project?

Also, I see vtkPVXRInterfaceHelper in the output, which only exists in ParaView, so that doesn’t look like just trying to compile vtk9.4.0.rc2.

@Ben Boeckel What makes you think there may be a missing link to VTK::RenderingVRModels?

This line:

is saying that vtkPVXRInterfaceHelper.obj (whatever that is…not CMake-generated as it lacks a .cxx or something in there) that it can’t find vtkVRRay symbols.

Scott Wittenburg:

What makes you think there may be a missing link to VTK::RenderingVRModels?

This line:

Zist8888:

vtkPVXRInterfaceHelper.obj : error LNK2019: 无法解析的外部符号 “__declspec(dllimport) public: static class vtkVRRay * __cdecl vtkVRRay::SafeDownCast(class vtkObjectBase *)”

is saying that vtkPVXRInterfaceHelper.obj (whatever that is…not CMake-generated as it lacks a .cxx or something in there) that it can’t find vtkVRRay symbols.

Ok, thanks. vtkPVXRInterfaceHelper is a class in the XRInterface plugin. The plugin, indeed, does not declare a direct dependency on VTK::RenderingVRModels, although vtkPVXRInterfaceHelper does use the vtkVRRay class, so maybe it should? I’m not sure how this hasn’t come up before though.

Yes, that sounds like the solution then. Windows’ linker is a bit more…picky at some things.

Scott Wittenburg:

The plugin, indeed, does not declare a direct dependency on VTK::RenderingVRModels, although vtkPVXRInterfaceHelper does use the vtkVRRay class, so maybe it should? I’m not sure how this hasn’t come up before though.

Yes, that sounds like the solution then. Windows’ linker is a bit more…picky at some things.

Ok, thanks Ben :slight_smile: I’ll make an MR for that today.

I have created a merge request here:

https://gitlab.kitware.com/paraview/paraview/-/merge_requests/7214