【发布时间】:2012-12-23 12:25:29
【问题描述】:
我已经被 MFC 相关的问题困扰了很长一段时间了。我已经阅读了许多论坛、VTK-Users 帖子等,但没有任何运气。
我的基本问题是 vtkMFC.lib 没有构建;无论我如何构建或配置项目。
这些是我遵循的步骤:
- 使用 CMake 2.8.9 生成 VTK.sln,其中 VTK_USE_GUISUPPORT、BUILD_SHARED_LIBS、VTK_USE_MFC、BUILD_EXAMPLES 已打开且 VTK_USE_VIDEO_FOR_WINDOWS 已关闭。
- 在 VS-2008 上打开 VTK.sln 并仅构建 vtkMFC.sln。
- 构建整个解决方案。 {我也尝试过将第 2 点和第 3 点互换,但没有结果}
- 有 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