【问题标题】:vtk unresolved external symbol vtkdatasetreadervtk 未解析的外部符号 vtkdatasetreader
【发布时间】:2012-12-23 12:25:29
【问题描述】:

我已经被 MFC 相关的问题困扰了很长一段时间了。我已经阅读了许多论坛、VTK-Users 帖子等,但没有任何运气。

我的基本问题是 vtkMFC.lib 没有构建;无论我如何构建或配置项目。

这些是我遵循的步骤:

  1. 使用 CMake 2.8.9 生成 VTK.sln,其中 VTK_USE_GUISUPPORT、BUILD_SHARED_LIBS、VTK_USE_MFC、BUILD_EXAMPLES 已打开且 VTK_USE_VIDEO_FOR_WINDOWS 已关闭。
  2. 在 VS-2008 上打开 VTK.sln 并仅构建 vtkMFC.sln
  3. 构建整个解决方案。 {我也尝试过将第 2 点和第 3 点互换,但没有结果}
  4. 有 6 个错误;其中 3 个与 vtkMFC.lib 不存在有关(例如,显然)。其余的是关于几个已解析的外部符号,

错误 LNK2019:无法解析的外部符号“__declspec(dllimport) public: static class vtkDataSetReader * _cdecl vtkDataSetReader::New(void)” (_imp_?New@vtkDataSetReader @@SAPAV1@XZ) 在 SampleDoc.obj 中的函数 "protected: __thiscall CSampleDoc::CSampleDoc(void)" (??0CSampleDoc@@IAE@XZ) 中引用

错误 LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: class vtkDataSet * _thiscall vtkDataSetReader::GetOutput(void)" (_imp_?GetOutput@vtkDataSetReader@ @QAEPAVvtkDataSet@@XZ) 在 SampleDoc.obj 中的函数“public: virtual int __thiscall CSampleDoc::OnOpenDocument(char const *)”(?OnOpenDocument@CSampleDoc@@UAEHPBD@Z) 中引用

vtkMFC解决方案在Debug/bin中生成的文件有vtkMFC.dll、vtkMFC.idb、vtkMFC.ilk,vtkMFC.pdb.

我还将 vtkIO.lib 添加到产生错误的项目中,并且相同的错误继续存在,另一个错误表示未找到 vtkIO.lib。

在这方面的任何帮助将不胜感激。

最好, 萨塔克

【问题讨论】:

  • 原来,vtk 5.10.1 版本存在一些问题。使用 5.8.0 解决了这个问题。
  • 在构建 VTK 时要记住的某些事情:如果选择了 BUILD_SHARED_LIBS(您希望生成 DLL),则确保所有标志都设置为 /MD。如果未选择 BUILD_SHARED_LIBS(您不希望生成 DLL 并通过静态库链接),请确保所有标志都设置为 /MT。
  • scap3y 您能否创建一个答案并接受它,这样问题就不会显示为未回答?
  • @DavidDoria - 没问题。

标签: windows visual-studio-2008 x86 windows-xp vtk


【解决方案1】:

截至 2013 年 2 月的答案:

事实证明,VTK 5.10.1 存在一些问题。使用 5.8.0 解决了这个问题。

从 CMake 构建 VTK 时要牢记的一些事项:

如果选择了BUILD_SHARED_LIBS(即,您希望生成 DLL),则确保所有标志都设置为 /MD。如果 BUILD_SHARED_LIBS 未选中(即,您不希望生成 DLL 并通过静态库链接),请确保所有标志都设置为 /MT

【讨论】:

    猜你喜欢
    • 2011-02-09
    • 1970-01-01
    • 2015-06-27
    • 2021-12-04
    • 2020-04-10
    • 2018-05-22
    相关资源
    最近更新 更多