我已经在很长一段时间内遇到了与MFC相关的问题。我已经阅读了许多论坛,VTK-Users帖子等,没有任何运气。
我的基本问题是 vtkMFC.lib 未构建;无论我如何构建我的项目或配置它。
这些是我遵循的步骤:
错误LNK2019:未解析的外部符号" __ declspec(dllimport)public:static class vtkDataSetReader * _ cdecl vtkDataSetReader :: New(void)"函数"中引用的( _imp_?New @ vtkDataSetReader @@ SAPAV1 @XZ):protected:__ thiscall CSampleDoc :: CSampleDoc(void)" SampleDoc.obj中的(?? 0CSampleDoc @@ IAE @ XZ)
错误LNK2019:未解析的外部符号" __ declspec(dllimport)public:class vtkDataSet * _ thiscall vtkDataSetReader :: GetOutput(void)"函数" public:virtual int __thiscall CSampleDoc :: OnOpenDocument(char const *)"( _imp_?GetOutput @ vtkDataSetReader @@ QAEPAVvtkDataSet @@ XZ) SampleDoc.obj中的??OnOpenDocument @ CSampleDoc @@ UAEHPBD @ Z
在 vtkMFC 解决方案的Debug / bin中生成的文件是vtkMFC。 dll ,vtkMFC。 idb ,vtkMFC。 ilk < / strong>,vtkMFC。 pdb 。
我还将 vtkIO.lib 添加到生成错误的项目中,并且相同的错误继续与另一个错误相同,表示找不到vtkIO.lib。
非常感谢这方面的任何帮助。
最佳, Sarthak
答案 0 :(得分:0)
截至2013年2月的答案:
事实证明, VTK 5.10.1 存在一些问题。使用 5.8.0 解决了这个问题。
从CMake构建VTK时要记住的一些事项:
如果选择BUILD_SHARED_LIBS
(即,您希望生成DLL),请确保所有标志都设置为/MD
。如果未选择BUILD_SHARED_LIBS
(即,您不希望生成DLL并通过静态库链接),请确保所有标志都设置为/MT
。