VS2012编译安装VTK-6.2.0_支持python

    计算机系统:Win8.1(64 bit)

    编译器:VS2012(64 bit)

    VTK版本:6.2.0

    python:2.7(64 bit)

1 问题

1.1 问题描述    

    参照《VS2012编译安装VTK-5.10.1_支持python》的方法来编译和安装VTK-6.2.0,结果出现以下错误:

48>vtkPythonArgs.obj : error LNK2019: 无法解析的外部符号 __imp_PyType_IsSubtype,该符号在函数 "bool __cdecl vtkPythonGetLongLongValue<__int64>(struct _object *,__int64 &)" (??$vtkPythonGetLongLongValue@_J@@YA_NPEAU_object@@AEA_J@Z) 中被引用
48>vtkPythonOverload.obj : error LNK2001: 无法解析的外部符号 __imp_PyType_IsSubtype
48>PyVTKMutableObject.obj : error LNK2001: 无法解析的外部符号 __imp_PyType_IsSubtype
48>vtkPythonArgs.obj : error LNK2019: 无法解析的外部符号 __imp_PyObject_IsTrue,该符号在函数 "bool __cdecl vtkPythonGetValue(struct _object *,bool &)" (?vtkPythonGetValue@@YA_NPEAU_object@@AEA_N@Z) 中被引用
48>vtkPythonOverload.obj : error LNK2001: 无法解析的外部符号 __imp_PyObject_IsTrue
48>PyVTKMutableObject.obj : error LNK2001: 无法解析的外部符号 __imp_PyObject_IsTrue
48>vtkPythonArgs.obj : error LNK2019: 无法解析的外部符号 __imp_PyCallable_Check,该符号在函数 "public: static bool __cdecl vtkPythonArgs::GetFunction(struct _object *,struct _object * &)" (?GetFunction@vtkPythonArgs@@SA_NPEAU_object@@AEAPEAU2@@Z) 中被引用
48>vtkPythonOverload.obj : error LNK2001: 无法解析的外部符号 __imp_PyCallable_Check
48>PyVTKObject.obj : error LNK2001: 无法解析的外部符号 __imp_PyCallable_Check
48>vtkPythonArgs.obj : error LNK2019: 无法解析的外部符号 __imp__PyUnicodeUCS2_AsDefaultEncodedString,该符号在函数 "bool __cdecl vtkPythonGetStringValue<char const >(struct _object *,char const * &,char const *)" (??$vtkPythonGetStringValue@$$CBD@@YA_NPEAU_object@@AEAPEBDPEBD@Z) 中被引用
48>vtkPythonArgs.obj : error LNK2019: 无法解析的外部符号 __imp_PyUnicodeUCS2_DecodeUTF8,该符号在函数 "public: static struct _object * __cdecl vtkPythonArgs::BuildValue(class vtkUnicodeString const &)" (?BuildValue@vtkPythonArgs@@SAPEAU_object@@AEBVvtkUnicodeString@@@Z) 中被引用
48>vtkPythonUtil.obj : error LNK2001: 无法解析的外部符号 __imp_PyUnicodeUCS2_DecodeUTF

1.2 解决办法    

    上述都是链接错误,主要是找不到python的库函数。由于编译器使用64位版本的,而python安装的是32位版本的,因此导致了上述错误。解决方法是卸载32位版本的python,然后安装64位版本的。

2 安装

    编译好VTK6.2.0之后,并且编译“INSTALL”项目以完成VTK6.2.0的安装(安装路径在使用cmake对VTK进行配置的时候就要指定,我指定的安装路径为E:\VTK\VTK-6.2.0_install)。

    安装完之后,并没有《VS2012编译安装VTK-5.10.1_支持python》最后提到的setup.py可用,因此需要根据《VS2012编译安装VTK-5.10.1_支持python》的setup.py的安装提示,将E:\VTK\VTK-6.2.0_install\lib\python2.7\site-packages目录中的vtk文件夹复制到python的安装目录中的对应位置(C:\Python27\Lib\site-packages)。

你可能感兴趣的:(VS2012编译安装VTK-6.2.0_支持python)