微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

构build使用C ++ 11function的Python扩展的问题

我试图在Windows 8.1上构build一个使用C ++ 11function的python3.42 64位扩展模块。 在linux和MacOs中使用gcc或clang可以正确地build立模块。

在Windows上,我已经安装了Visual Studio 2010 Express和Windows SDK 7.1(显然在VS2010中缺lessx64编译器)。 我已经能够构build扩展的一部分,但是有些C ++ 11function在VS2010中是不可用的。 我可以修改扩展代码,以避免使用这些C ++ 11function,但我们有更多的扩展与C + + 11function,我是唯一一个在我的团队使用Windows …所以这不是一个可行的select。 我宁愿让它按原样生成

所以问题是。 我如何使用具有更完整的C ++ 11实现的VS编译器版本在Windows上构buildpython 3扩展,比如VS2012或最好是VS2013?

创build一个大的std ::数组会导致段错误

C ++ 11:如何实现快速,轻量和公平的同步资源访问

代码与std :: bind不编译,错误C2780:需要6个参数 – 8提供

std ::线程创build抛出exception

用mingw编译器错误在windows上升压testing:putenv没有声明

DirectX 11video播放

GCC 4.7编译lib与GCC 4.6.3程序兼容吗?

在Qt Creator中使用C ++ 11

不应该std :: thread :: id认构造函数创build一个“NULL”ID?

铛是使用错误的系统包含目录

那么,我会回答自己这个问题。

我想解决方案是使用vs2012或vs2013来构建扩展。 在这种情况下,我需要用vs2012或vs2013重新编译python解释器。 我找到了这个页面,它解释了如何: http ://p-nand-q.com/python/building-python-33-with-vs2013.html很高兴你可以从这个页面下载vs2013构建的Python二进制文件。 然而,遵循这条路线意味着我将不得不使用vs2013构建每个非纯Python扩展,这可能会是一些,因为我主要是在做研究而不是生产,我不知道我可能需要什么扩展。 建立numpy和scipy不是微不足道的,他们似乎需要fortran编译器来构建它们。 我想这是我想避免到达的结论,我希望有一些技巧来避免它。

最后,我选择修改代码的C ++ 11部分,以便它可以用vs2010构建,这不是很好,但是我想我会避免构建我可能需要的每个扩展的许多未来问题。 我可以从这里下载Windows二进制文件: http : //www.lfd.uci.edu/~gohlke/pythonlibs/

我想另一个解决方案是在Linux或MacOs开发。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐