VCharles
(Charles)
December 8, 2025, 4:07pm
1
Hello,
I’m upgrading my solution from VTK 8.2.2 to 9.5.2 and have built VTK 9.5.0 as static libraries. After updating my code, I’m encountering linker errors:
error LNK2001: unresolved external symbol vtk_glad_*
If I understand correclty, vtkglew-8.2.lib has been replaced by vtkglad-9.5.lib in VTK 9.x.
My VTK 8.2.0 project did not explicitly reference vtkglew-8.2.lib but I added vtkglad-9.5.lib to my additional dependencies, and the linker errors persist.
My current linker config is:
<Link>
<AdditionalDependencies>gdi32.lib;glu32.lib;opengl32.lib;User32.lib;vtkglad-9.5.lib;vtkInteractionStyle-9.5.lib;vtkCommonCore-9.5.lib;vtkCommonDataModel-9.5.lib;vtkCommonExecutionModel-9.5.lib;vtkCommonMath-9.5.lib;vtkCommonSystem-9.5.lib;vtkCommonMisc-9.5.lib;vtkCommonTransforms-9.5.lib;vtkFiltersCore-9.5.lib;vtkFiltersGeneral-9.5.lib;vtkFiltersGeneric-9.5.lib;vtkFiltersGeometry-9.5.lib;vtkFiltersImaging-9.5.lib;vtkFiltersModeling-9.5.lib;vtkFiltersParallel-9.5.lib;vtkFiltersSources-9.5.lib;vtkFiltersExtraction-9.5.lib;vtkFiltersTexture-9.5.lib;vtkImagingCore-9.5.lib;vtkInteractionImage-9.5.lib;vtkInteractionStyle-9.5.lib;vtkInteractionWidgets-9.5.lib;vtkIOCore-9.5.lib;vtkIOImage-9.5.lib;vtkIOXML-9.5.lib;vtkRenderingAnnotation-9.5.lib;vtkRenderingCore-9.5.lib;vtkRenderingFreeType-9.5.lib;vtkRenderingImage-9.5.lib;vtkRenderingLabel-9.5.lib;vtkRenderingOpenGL2-9.5.lib;vtkRenderingLOD-9.5.lib;vtkRenderingVolume-9.5.lib;vtksys-9.5.lib;log4cxx.lib</AdditionalDependencies>
</Link>
Am I missing any additional libraries or dependencies for VTK 9.5.0 static builds? Is there a specific linking order required for vtkglad-9.5.lib? Are there any other migration steps specific to the GLEW→GLAD transition?
I can provide the full build output if needed. Thank you for your help!
jaswantp
(Jaswant Panchumarti (Kitware))
December 8, 2025, 4:17pm
2
IIUC, you do not use find_package(VTK) from CMake to link your project against VTK?
My current linker config is: …
That should’ve worked. I’ve not tried static builds. For dynamic libs, glad needs GLAD_API_CALL_EXPORT when building and linking to it, and GLAD_API_CALL_EXPORT_BUILD when building it.
Maybe something is preventing the vtk_glad_* symbols from being visible? I will try static locally.
VCharles
(Charles)
December 8, 2025, 4:23pm
3
That’s correct — my project doesn’t use CMake. It’s a C++ project integrated into a larger C# solution, so I’m using Visual Studio and MSBuild for the build process. I’m manually specifying the VTK library dependencies in the .vcxproj file rather than using CMake’s find_package(VTK).
Thank you
jaswantp
(Jaswant Panchumarti (Kitware))
December 8, 2025, 4:23pm
4
I built vtk static libs and got a test CMake project to link with it successfully. Let me run that through the Visual Studio generator and see what it creates.
jaswantp
(Jaswant Panchumarti (Kitware))
December 8, 2025, 4:34pm
5
Okay. Here is the <Link> section CMake generated for the VTK tests.
Note the order. opengl32.lib appears after vtkglad-9.5.lib. I do not know if this matters.
<Link>
<AdditionalDependencies>..\..\..\..\lib\MinSizeRel\vtkRenderingCore-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkCommonSystem-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersExtraction-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersGeneral-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersGeometry-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersProgrammable-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersSources-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersTexture-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkImagingSources-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkInteractionStyle-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkIOImage-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkIOLegacy-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkIOParallel-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkIOXML-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkRenderingAnnotation-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkRenderingOpenGL2-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkRenderingVRModels-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkTestingCore-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkTestingRendering-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkIOGeometry-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkjsoncpp-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersParallel-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersExtraction-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersStatistics-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkParallelDIY-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersTexture-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersModeling-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkRenderingOpenGL2-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkRenderingFreeType-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkfreetype-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkRenderingHyperTreeGrid-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersHybrid-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkImagingSources-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkRenderingUI-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkglad-9.5.lib;opengl32.lib;..\..\..\..\lib\MinSizeRel\vtkx11-9.5.lib;d3d11.lib;dxgi.lib;..\..\..\..\lib\MinSizeRel\vtkRenderingCore-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersSources-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkCommonColor-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkIOImage-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkDICOMParser-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkmetaio-9.5.lib;comctl32.lib;wsock32.lib;..\..\..\..\lib\MinSizeRel\vtkpng-9.5.lib;..\..\..\..\lib\MinSizeRel\vtktiff-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkjpeg-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkIOXML-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkIOXMLParser-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkexpat-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkTestingCore-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersHyperTree-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersGeneral-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkCommonComputationalGeometry-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersVerdict-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersGeometry-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkverdict-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkParallelCore-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkIOLegacy-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkIOCellGrid-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkIOCore-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkzlib-9.5.lib;..\..\..\..\lib\MinSizeRel\vtklz4-9.5.lib;..\..\..\..\lib\MinSizeRel\vtklzma-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersCellGrid-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersCore-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkFiltersReduction-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkImagingColor-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkImagingCore-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkCommonExecutionModel-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkCommonDataModel-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkCommonSystem-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkpugixml-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkCommonMisc-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkCommonTransforms-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkCommonMath-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkCommonCore-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkfmt-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkscn-9.5.lib;..\..\..\..\lib\MinSizeRel\vtktoken-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkloguru-9.5.lib;..\..\..\..\lib\MinSizeRel\vtkkissfft-9.5.lib;..\..\..\..\lib\MinSizeRel\vtksys-9.5.lib;ws2_32.lib;dbghelp.lib;psapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>
<DataExecutionPrevention></DataExecutionPrevention>
<GenerateDebugInformation>false</GenerateDebugInformation>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<ImageHasSafeExceptionHandlers></ImageHasSafeExceptionHandlers>
<ImportLibrary>D:/dev/vtk-static/vtk/out/build/Debug/lib/MinSizeRel/vtkRenderingCoreCxxTests.lib</ImportLibrary>
<LinkErrorReporting></LinkErrorReporting>
<ProgramDataBaseFile>D:/dev/vtk-static/vtk/out/build/Debug/bin/MinSizeRel/vtkRenderingCoreCxxTests.pdb</ProgramDataBaseFile>
<RandomizedBaseAddress></RandomizedBaseAddress>
<SubSystem>Console</SubSystem>
</Link>
VCharles
(Charles)
December 9, 2025, 8:52am
6
You are right, the order matters. I have re-order the libraries:
<AdditionalDependencies>
<!-- High-level VTK interaction/widgets -->
vtkInteractionStyle-9.5.lib;
vtkInteractionWidgets-9.5.lib;
vtkInteractionImage-9.5.lib;
vtkRenderingAnnotation-9.5.lib;
vtkRenderingVolume-9.5.lib;
vtkRenderingLOD-9.5.lib;
vtkRenderingLabel-9.5.lib;
vtkRenderingImage-9.5.lib;
vtkRenderingOpenGL2-9.5.lib;
vtkRenderingFreeType-9.5.lib;
vtkRenderingCore-9.5.lib;
<!-- VTK OpenGL implementation -->
vtkglad-9.5.lib;
<!-- VTK Filters -->
vtkFiltersTexture-9.5.lib;
vtkFiltersParallel-9.5.lib;
vtkFiltersModeling-9.5.lib;
vtkFiltersImaging-9.5.lib;
vtkFiltersGeometry-9.5.lib;
vtkFiltersGeneric-9.5.lib;
vtkFiltersGeneral-9.5.lib;
vtkFiltersSources-9.5.lib;
vtkFiltersExtraction-9.5.lib;
vtkFiltersCore-9.5.lib;
<!-- VTK IO -->
vtkIOXML-9.5.lib;
vtkIOImage-9.5.lib;
vtkIOCore-9.5.lib;
<!-- VTK Imaging -->
vtkImagingCore-9.5.lib;
<!-- VTK Common -->
vtkCommonExecutionModel-9.5.lib;
vtkCommonDataModel-9.5.lib;
vtkCommonTransforms-9.5.lib;
vtkCommonMisc-9.5.lib;
vtkCommonMath-9.5.lib;
vtkCommonSystem-9.5.lib;
vtkCommonCore-9.5.lib;
<!-- VTK system utilities -->
vtksys-9.5.lib;
<!-- External libraries -->
log4cxx.lib;
<!-- System libraries -->
opengl32.lib;
glu32.lib;
gdi32.lib;
User32.lib;
%(AdditionalDependencies)
</AdditionalDependencies>
Does this order seems good to you? I still get the linker errors with this modification.
Thank you
jaswantp
(Jaswant Panchumarti (Kitware))
December 9, 2025, 1:09pm
7
you still get linker errors. That is odd.
VCharles
(Charles)
December 9, 2025, 1:13pm
8
No, unfortunately the linker errors persist. I’m currently working on a minimal sample application to help diagnose the issue more effectively. I’ll post an update once I have it ready.
Thank you for your help!
VCharles
(Charles)
December 9, 2025, 2:16pm
9
I managed to reproduce the linker errors in a sample. I am not allowed to upload attachment, how can I send it to you?
I have compiled the latest release of VTK locally and packaged it in a nuget package. I can provide you the package if needed.
jaswantp
(Jaswant Panchumarti (Kitware))
December 9, 2025, 2:19pm
11
Okay. Thanks for getting that ready. Try uploading once again. If that does not work, maybe create a small github project or gist?
VCharles
(Charles)
December 9, 2025, 2:20pm
12
Thank you
vtk_glad_sample.zip (1.6 MB)
jaswantp
(Jaswant Panchumarti (Kitware))
December 9, 2025, 2:41pm
13
Can you share the nuget package?
VCharles
(Charles)
December 9, 2025, 3:00pm
14
The nuget package is quite large (130MB), I had to upload it to my Google Drive account https://drive.google.com/file/d/1NhAxsrNyTzZlxM_x31SHtDAPpsVB5f4J/view?usp=sharing