1

很长一段时间以来,我一直被与 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)公共:静态类vtkDataSetReader * _ cdecl vtkDataSetReader::New(void)”( _imp_?New@vtkDataSetReader@@SAPAV1@XZ)在函数“受保护:__thiscall CSampleDoc::CSampleDoc (void)" (??0CSampleDoc@@IAE@XZ) 在 SampleDoc.obj

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

在vtkMFC解决方案的Debug/bin 中生成的文件是 vtkMFC。dll,vtkMFC。idb,vtkMFC。同类,vtkMFC。数据库

我还将vtkIO.lib添加到生成错误的项目中,并且相同的错误继续以及另一个说未找到 vtkIO.lib。

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

最好的,萨塔克

4

1 回答 1

0

截至 2013 年 2 月的回答:

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

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

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

于 2014-02-04T15:22:20.320 回答