在setup.py中配置SWIG模块

SWIG的一个优点是,受到了distutils/setuptools的原生支持。 在setup.py文件中,可以很方便地直接把*.i文件作为源文件进行配置,而不用手写编译脚本。 本文通过一个Demo项目,来讲解如何在setup.py中对SWIG进行配置。

用SWIG向Python提供C++里STL的容器

在Python项目中使用C/C++的代码,除了少数场景,其它都有数据交换的需求。 而C++的vector、map等,则是常见的数据容器。 本文介绍如何利用SWIG,在Python中调用STL的string、vector和map。

解决setup.py编译C++代码的-Wstrict-prototypes警告

本文介绍了一个在利用setuptools的Extension来编译C++代码时,会出现的-Wstrict-prototypes警告,及其解决方案。

在Python代码中调用C/C++代码

在Python代码中调用C/C++代码,这需求是比较常见的。 毕竟,当代软件世界的基础设施领域是C语言的天下,很多开发工作不可避免地要与它打交道。 而C++则是家族的嫡长子,也占据了一些不可替代的位置。 本文着重介绍ctypes与SWIG,也会提一下其它方案。

编译运行SWIG的example代码样例

跑通SWIG的example代码,比Boost.Python的HelloWorld要简单一些。 不过,对不熟悉gcc的人来说,还是很费劲。 本文基于官方教程,补充了一个可行的Makefile。

编译运行Boost.Python的HelloWorld

对于C/C++开发经验不多、或者只有Python经验的人来说,要跑通一个Boost.Python的HelloWord程序,是一件不容易的事。 本文介绍如何避开bjam,用Makefile打通最不容易的那个环节——编译。