在C++中调用python时,传递大型数组是一个大问题,目前网上并没有给出靠谱而且简便的方法。在我跟boost.python的开发者沟通后给出了以下解决方案:
环境配置方法:
解压boost文件,在其目录中执行.\bootstrap.bat,会生成编译器b2.exe和bjam.exe
修改project-config.jam文件,加入python的版本及路径(不加入则会默认python2):
import option ;
using msvc ;
option.set keep-going : false ;
using python
: 3.6 # Version
: D:\\Anaconda3\\python.exe # Python Path
: D:\\Anaconda3\\include # include path
: D:\\Anaconda3\\libs # lib path(s)
;
执行命令`.\bjam.exe toolset=msvc-14.0 --with-python threading=multi link=shared address-model=64,在 stage\lib 目录中会生成 boost_numpy3-* 和 boost_python3-* 字样的文件。这是编译C++文件时需要的链接库。
新建C++工程,在 Project→Project Property→Configuration Properties→VC++ Directories 中,Library Directories 中需要包含 D:\Anaconda3\libs和D:\boost\b