当我尝试在 windows 下使用 Visual Studio 2008 专业版编译msgpack时
Python setup.py build
我明白了
msgpack/_packer.cpp(316) : fatal error C1083: Cannot open include file: 'stdint.
h': No such file or directory
显然这是由于 MS 编译器没有适当的 C 支持,所以我下载了最新的msinttypes应该可以解决这个问题。如果我将 inttypes.h 和 stdint.h 放在下面C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include
并尝试再次编译,我会得到:
c:\work\tools\msgpack-python-0.4.0\msgpack-python-0.4.0\msgpack\sysdep.h(24) : e
rror C2371: 'int8_t' : redefinition; different basic types
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\stdint.h(87) : see
declaration of 'int8_t'
根据谷歌搜索,这看起来像是某个其他头文件正在定义 int8_t。实际上,如果我没记错的话,错误说它是 stdint.h,这是我从 msinttypes 添加的头文件,用于首先解决问题。这台机器还安装了 vs.net 2010 专业版,但我不确定这是否会导致任何问题。
考虑到我在这台机器下的 Windows 下运行了完整的 Python 设置,我无法在 Windows 下切换到 mingw,因为这可能会导致问题,因为所有 Python 2.7 代码都是用 Visual c++ 2008 编译的。
如何编译 msgpack 扩展,以便在 windows 下使用快速版本?