错误 LNK2001 无法解析的外部符号 vtk_glad_glTexParameteri
原因: 在 VTK 9.0 中,你可能链接的是 vtkglew 相关的库,而到了 VTK 9.5,许多 OpenGL 函数(如 glTexParameteri)被封装在了 vtkglad 模块中。报错说明你的项目链接器找不到 vtk_glad_glTexParameteri 的实现。
解决方法:
如果你使用的是 VTK 静态库,GLAD 需要特定的宏来正确导出符号:
- 在 C/C++ -> 预处理器 -> 预处理器定义 中添加:GLAD_API_CALL_EXPORT
- 或者如果是你自己在构建 VTK,确保 VTK_MODULE_USE_EXTERNAL_vtkglad 的设置与你的项目一致。
VTKIMAGINGGENERAL_EXPORT
这是最核心的问题。VTKIMAGINGGENERAL_EXPORT 是专门给 VTK 官方库编译 vtkImagingGeneral 模块时使用的。
- 当你编译自己的项目(如 VolumeRender)时,如果你标记自己的类为 VTKIMAGINGGENERAL_EXPORT,链接器会认为这个类应该从 vtkImagingGeneral-9.5.dll 中导入。
- 然而,这个类是你自己写的,它不在官方的 DLL 里,因此链接器会报错:无法解析的外部符号。