基于VTK9.3.0的MPR重建demo编译报错:无法解析的外部符号 “__declspec(dllimport) public: static class vtkMatrix4x4 * __cdec

现象:

严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2019 无法解析的外部符号 "__declspec(dllimport) public: static class vtkMatrix4x4 * __cdecl vtkMatrix4x4::New(void)" (__imp_?New@vtkMatrix4x4@@SAPEAV1@XZ),该符号在函数 "public: static class vtkSmartPointer<class vtkMatrix4x4> __cdecl vtkSmartPointer<class vtkMatrix4x4>::New(void)" (?New@?$vtkSmartPointer@VvtkMatrix4x4@@@@SA?AV1@XZ) 中被引用 VTKSample2 F:\VTKFolders\VTKSample2\VTKSample2.obj 1 错误 LNK2019 无法解析的外部符号 "__declspec(dllimport) public: void __cdecl vtkMatrix4x4::DeepCopy(double const * const)" (__imp_?DeepCopy@vtkMatrix4x4@@QEAAXQEBN@Z),该符号在函数 "void __cdecl initImageActor(double *,double *,class vtkSmartPointer<class vtkImageCast>,class vtkSmartPointer<class vtkImageReslice>,class vtkSmartPointer<class vtkImageActor>)" (?initImageActor@@YAXPEAN0V?$vtkSmartPointer@VvtkImageCast@@@@V?$vtkSmartPointer@VvtkImageReslice@@@@V?$vtkSmartPointer@VvtkImageActor@@@@@Z) 中被引用 VTKSample2 F:\VTKFolders\VTKSample2\VTKSample2.obj 1 错误 LNK2019 无法解析的外部符号 "__declspec(dllimport) public: void __cdecl vtkMatrix4x4::SetElement(int,int,double)" (__imp_?SetElement@vtkMatrix4x4@@QEAAXHHN@Z),该符号在函数 "void __cdecl initImageActor(double *,double *,class vtkSmartPointer<class vtkImageCast>,class vtkSmartPointer<class vtkImageReslice>,class vtkSmartPointer<class vtkImageActor>)" (?initImageActor@@YAXPEAN0V?$vtkSmartPointer@VvtkImageCast@@@@V?$vtkSmartPointer@VvtkImageReslice@@@@V?$vtkSmartPointer@VvtkImageActor@@@@@Z) 中被引用 VTKSample2 F:\VTKFolders\VTKSample2\VTKSample2.obj 1 错误 LNK1120 3 个无法解析的外部命令 VTKSample2 F:\VTKFolders\VTK-Build\bin\Debug\VTKSample2.exe 1

这些链接错误表明编译器找到了 vtkMatrix4x4 的声明,但链接器无法找到其实现。这通常是由于项目没有正确链接到所需的 VTK 库。特别是,vtkMatrix4x4 的实现应该在 vtkCommonMath 模块中。

具体解决步骤

  1. 确认 vtkCommonMath 库的存在

    • 确认你的 VTK 安装目录中包含 vtkCommonMath 库文件。库文件通常位于 lib 文件夹中,文件名类似于 vtkCommonMath-9.3.lib(版本号可能不同)。
  2. 在项目中添加 vtkCommonMath

    • 在 Visual Studio 项目属性中,添加 vtkCommonMath 库到链接器输入项中。

添加库到链接器输入项

  1. 右键点击项目 -> 属性

  2. 转到 配置属性 -> 链接器 -> 输入 -> 附加依赖项

  3. 添加 vtkCommonMath 库。例如:

    vtkCommonMath-9.3.lib

    确保添加的库名称与实际安装的 VTK 库文件名称一致。

确认包含和库目录

确保项目属性中的包含目录和库目录已正确设置:

  1. 右键点击项目 -> 属性

  2. 转到 配置属性 -> VC++ 目录

  3. 包含目录 中添加 VTK 头文件的路径。例如:

    C:\Path\To\VTK\include\vtk-9.3
  4. 库目录 中添加 VTK 库文件的路径。例如:

    C:\Path\To\VTK\lib

完整的链接库列表

确保链接了所有必要的 VTK 库。以下是一个示例列表(具体库文件名称请参考实际安装的 VTK 版本):

vtkCommonCore-9.3.lib vtkCommonDataModel-9.3.lib vtkCommonMath-9.3.lib vtkRenderingCore-9.3.lib vtkInteractionStyle-9.3.lib vtkRenderingOpenGL2-9.3.lib vtkIOImage-9.3.lib vtkDICOMParser-9.3.lib vtkmetaio-9.3.lib

重新编译

完成上述配置后,重新编译你的项目。如果仍然有问题,请提供更多详细的错误信息,以便进一步诊断和解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿享天开

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值