在Windows上使用64位64位构建VRPN服务器

时间:2015-11-18 13:29:09

标签: python windows cmake mingw vrpn

我正在尝试在Windows 7 64位上使用Python 3.4 64位构建一个带有Python3标志的VRPN服务器,但似乎存在问题。我需要这个用于BlenderVR软件。

这是我的程序:

  • 1)我使用 CMake 来创建makefile(我使用的是3.4.0版本,但我也尝试了不同的版本)。我是用这个命令做的(那些标志应该在那里,但结果似乎是相同的,没有它们):
  

cmake -G“MinGW Makefiles”
-HD:\ My \ BlenderVR \ plugins \ vrpn   
-BD:\ My \ BlenderVR \ plugins \ cmake
-DVRPN_BUILD_PYTHON = OFF
-DVRPN_BUILD_PYTHON_HANDCODED_2X = OFF
-DVRPN_BUILD_PYTHON_HANDCODED_3X = ON

我曾经也添加了这些标志,但它似乎可以找到没有它们的Python

  

-DPYTHON_INCLUDE_DIR = d:\我\ BlenderVR \必需\ Python3 \包括
  -DPYTHON_LIBRARY = d:\我\ BlenderVR \必需\ Python3 \库\ python34.lib

正确找到Python,此操作不会引发任何错误。

  • 2)然后我使用 mingw32-make.exe 构建它,我收到此错误:
  

[90%]链接CXX共享模块vrpn.pyd
D:/My/BlenderVR/Required/Python3/libs/python34.lib:添加错误   符号:文件格式无法识别
collect2.exe:错误:ld   返回1退出状态   
python \ CMakeFiles \ vrpn-python.dir \ build.make:505:食谱   目标'python / vrpn .pyd'失败了mingw32-make [2]:* * *   [python / vrpn.pyd]错误1
CMakeFiles \ Makefile2:3247:食谱   目标'python / CMakeFiles / vrpn-python.dir / all'失败   mingw32-make [1]:* * * [python / CMakeFiles / vrpn-python.dir / all]   
错误2 Makefile:159:目标'all'的配方失败
  mingw32-make:[all]错误2

vprn.pyd 对我未来的工作至关重要。

我发现它需要 libpython34.a 文件(可能)。当我创建并复制到Python3 / libs文件夹时,它的工作和完成没有错误,但是crated vprn.pyd 没有按预期工作。

我需要的是让 import vrpn 在python中使用这个简单的测试(附加 vrpn.pyd 构建的路径):

import sys
sys.path.append('D:/My/BlenderVR/plugins/cmake/python')
import vrpn

它暂时停留在我的整个计算机上,然后弹出Python已停止工作。

我怀疑问题发生在我创建的 libpython34.a 文件中:

gendef python34.dll (in Windows/System32)
dlltool -D python34.dll -d python34.def -l libpython34.a

我不知道如何获取libpython文件。我尝试过各种版本的CMake和MinGW(如MinGWPy,TDM,w64)和许多CMake标志。我能够使用32位Python使其工作,但我需要64位版本,否则它不能与BlenderVR环境一起使用。

我知道这是一个非常具体的问题,起初可能有点令人困惑,但我不知道怎么回事。我会很高兴能有所帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

mingwpy应该与pip一起安装(直到它在PYPI正式发布):

pip install -i https://pypi.anaconda.org/carlkl/simple mingwpy

所有必需的导入文件都被自动复制到python \ libs文件夹中。 如果python \ Scripts在PATH中,它应该开箱即用。

你必须确保Blender Python配备了两个导入文件

D:\My\BlenderVR\Required\Python3\libs\libpython\libpython34.dll.a
D:\My\BlenderVR\Required\Python3\libs\libpython\libmsvcr100.a