64位win7下安装Boost 1.59.0 + boost.python 1.59.0 + gccxml + pygccxml + pyplusplus(py++)
由于安装过程中实在是出现了N多问题,所以不得不专门写个帖子来记录一下这破东西在Win7下的安装过程,避免以后还要再用的时候踩坑。
1.Boost简介
Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关。大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。但Boost中也有很多是实验性质的东西,在实际的开发中实用需要谨慎。
2.安装ICU
安装ICU的时候遇到了各种奇葩的问题,所以要记录一下,避免以后踩坑。
1.下载:https://sourceforge.net/projects/icu/
2.解压。比如C:\Users\Administrator\Desktop\icu
3.到icu目录下source\allinone找到allinone.sln,用VS2010打开
4.用Release方式生成。可选Win32和x64两种版本。为了和32位的python以及boost兼容,我在这里用的是Win32方式。
5.编译过程中可能会提示“TargetPath xxxxx 与Linker的OutputFile不匹配”,可以无视它,重新进行生成。
6.生成成功后,将include目录和lib目录下的库文件拷贝出来,放到想要安装的路径下:我这里放在:d:\developer\icu下
7.配置环境变量PATH,添加d:\developer\icu\bin
8.运行解压目录下的C:\Users\Administrator\Desktop\icu\source\allinone\icucheck.bat,看看是否安装成功
3.安装Expat
1.下载:https://sourceforge.net/projects/expat/
2.解压。比如我这里解压到桌面:C:\Users\Administrator\Desktop\expat-2.1.1
3.用CMake生成项目:选中expat-2.1.1目录,新建一个要生成项目的目录:C:\Users\Administrator\Desktop\expat-2.1.1-build。点config,配置CMAKE_INSTALL_PREFIX路径为你想要安装的路径:D:\developer\expat,再config,再Generate。
4.用VS2010打开C:\Users\Administrator\Desktop\expat-2.1.1-build中生成的项目,选中Install项目,点击生成。
5.配置环境变量PATH,添加D:\developer\expat\bin。安装完成
4.安装MIP
MPI所需MPI类库 -- Boost的官方站点说需要MPICH或OpenMPI之类的支持,事实上在Windows下总是会提示需要MPIC++,你需要的是Microsoft Cluster Pack SDK,下载并默认安装在C:\ProgramFiles\Microsoft Compute Cluster Pack下。(说明:如果安装Microsoft HPC Pack 2008 SDK或Microsoft Compute ClusterPack时不是装到默认的路径下,那bjam就会抓瞎,找不到mpic++的路径,这时候可以修改一下mpi.jam(在boost_1_46_1\tools\build\v2\tools): local cluster_pack_path_native = "你的路径")
——《Win7+vs2010下安装boost_1_46_1库》
5.安装Boost
1.下载Boost。我这里的版本是1.59.0:http://www.boost.org/users/history/version_1_59_0.html
2.解压:C:\Users\Administrator\Desktop\boost_1_59_0
3.在命令行运行C:\Users\Administrator\Desktop\boost_1_59_0\bootstrap.bat,生成bjam.exe
4.为了使用mpi,打开配置文件:project-config.jam,添加一行
using mpi ;
5.使用ICU:set ICU_PATH="D:\developer\icu"
6.安装:bjam stage -s HAVE_ICU=1 -s ICU_PATH=D:\developer\icu --toolset=msvc-10.0 --build-type=complete link=static runtime-link=static --prefix="D:\developer\Boost" threading=multi variant=release
7.各个参数的含义见参考资料[1]的文章
6.其他安装说明
1.GCC-XML安装主要用CMake生成VS项目,在Windows下用Virtual Studio打开生成的.sln,然后点击INSTALL项目生成。最后配置环境变量PATH到INSTALL的目录即可。
2.boost.python安装文件:http://www.lfd.uci.edu/~gohlke/pythonlibs/#boost.python。安装需要python + pip + wheels
3.pyplusplus(py++)和pygccxml可以在命令行下通过pip install pyplusplus、pip install pygccxml进行安装
7.boost.python使用说明可以参见官网
8.py++
能够非常方便的通过头文件生成boost.python所需的封装代码。但是对于比较高级的使用封装包含虚函数的c++类、带指针参数的函数、返回值是指针的函数等的封装需要手动指定调用策略。而且我在使用除了return_opaque_pointer之外的返回策略进行编译时总会报出各种错误。我在其中纠结了很久,最终没有找到解决办法。
py++的使用说明参见参考资料[5]
参考资料:
1.《Win7+vs2010下安装boost_1_46_1库》[DoubleLi]
2.《在Windows使用VC编译ICU》[dragoo1]
4.《CMakeListx.txt 编辑语法学习》[KyJason]
5.《PY++ 自动将你的C++程序接口封装供python调用》[阁子]
5.CMake官网