如何为 Windows 编译 cymunk?
Posted
技术标签:
【中文标题】如何为 Windows 编译 cymunk?【英文标题】:How can I compile cymunk for windows? 【发布时间】:2014-10-13 18:22:07 【问题描述】:我尝试在 win7 x32(vbox) 和 x64 上使用 mingw 和几个版本的 python 在 x64 上,cymunk 编译,但在导入时崩溃并出现 ntdll.dll 错误 在 x32 上,cymunk 无法编译并出现“侏儒错误”
我必须使用 MSVC 吗?如果是这样,如何以及什么版本?
感谢任何答案!
额外信息:http://cython.org/ - 尝试手动编译 cython,从 pip/easy_install,从 kivy 和预编译(版本 0.20.2 和 0.20.1-b?) 使用 python 2.7.6 和最新版本,也与 kivy 捆绑在一起 使用最新的 mingw,并与 kivy 捆绑在一起
x32(vbox) 日志带有 dwarf 错误:http://pastebin.com/vgkcwj6W
我在 github 上打开的问题:https://github.com/tito/cymunk/issues/26
【问题讨论】:
Python 本身是使用 MSVC 编译的。搜索 Windows SDK 以找到独立的 MSVC x64 编译器。使用 MinGW 可能会导致运行时冲突的问题,至少在过去是这样。 看看这里:***.com/questions/12028762/… 感谢您的信息!似乎chipmunk(lib cymunk wraps)在使用msvc2008(用于编译官方py 2.7的版本)编译时存在问题 看来我可能需要:(a) 使用 mingw 或最近的 msvc 自定义编译 python (b) 修改 Chimmunk 以再次在 msvc2008 下编译实用的是…… 【参考方案1】:我很确定这与您的环境有关。尝试使用至少 4.8.2 版的 mingw 并确保您的机器上没有多个 mingw 版本(或 mingw 和 cygwin 等)
如果您有多个版本的 mingw(也许还有 cygwin?),您最终可能会使用最新版本的编译器,但指向 LIB 目录的一些环境变量来自其他版本之一(可能是不兼容的 mingwrt?)
我建议你尝试使用这个工具http://sourceforge.net/projects/mingw/files/Installer/ 来管理mingw 包; 也许也是一个
mingw-get 升级“mingwrt=4.0.3”
(最新的mingw运行时系统-我猜是ntdll错误是这个造成的)
【讨论】:
感谢您的回复!然而,我已经在使用最新的 mingw,在包括 winxp、7 和 8 在内的多台机器(一些虚拟机)上进行了测试,其中一台是完全干净安装的 windows(xp 和 8) 嘿!修复。传递给 gcc 的 arg 对于 windows 不正确【参考方案2】:Windows 上的技巧是使用 -std=gnu99 而不是 -std=c99 - 在花栗鼠论坛上注意到。
我已经相应地更新了cymunk。
https://github.com/tito/cymunk/commit/2906ea14cbfaf42c067df4df59404c63de953c3b
现在为 windows 编译应该容易得多。
【讨论】:
以上是关于如何为 Windows 编译 cymunk?的主要内容,如果未能解决你的问题,请参考以下文章
如何为不同的 OS/Python 版本编译 Python C/C++ 扩展?
如何为 Windows 上构建的 libxml2.dll 生成清单文件?