我正在尝试在 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:\My\BlenderVR\Required\Python3\include
-DPYTHON_LIBRARY=D:\My\BlenderVR\Required\Python3\libs\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 文件夹时,它可以正常工作并且没有错误地完成,但是装箱的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 标志的各种版本的 CMake 和 MinGW(如 MinGWPy、TDM、w64)。我能够使用 32 位 Python 使其工作,但我需要 64 位版本,否则它不适用于 BlenderVR 环境。
我知道这是一个非常具体的问题,起初可能有点令人困惑,但我不知道该怎么说。我会很高兴有任何可以提供帮助的东西。谢谢你。