如何为 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?的主要内容,如果未能解决你的问题,请参考以下文章

你如何为x64编译静态pthread-win32 lib?

如何为 Win32 应用程序设置任务栏图标?

如何为不同的 OS/Python 版本编译 Python C/C++ 扩展?

如何为 Windows 上构建的 libxml2.dll 生成清单文件?

如何为 [Setup] AppVersion 使用编译时环境变量?

如何为 Intranet 预编译 MVC?