华为p8青春版卡:【Boost】在Windows下编译Boost
来源:百度文库 编辑:偶看新闻 时间:2024/05/10 07:16:47
http://raylinn.javaeye.com/blog/521642
【Boost】 在Windows下编译Boost 文章分类:C++编程 这系列文章将逐一介绍Boost库的具体内容。首先我们从Boost在Windows下编译开始讲解。
对于大部分Boost应用来说,它是不用编译的,直接包含头文件就可使用,如:
只有少部分需要编译成库文件,需要编译的库如下:
要完全编译boost库需要先准备一些第三方库:
1. Regex所需Unicode支持类库 -- ICU
编译ICU较为简单,解开ICU包之后,在其目录下可以找到一个叫"allinone"的目录,用Visual studio或者visual studio express打开里面的allinone.sln,选择release,即可以编译完成,编译之后,将include目录和release目录下的库文件拷贝出来,分别放在C:\icu\include和C:\icu\lib.
2. Graph所需的Xml处理类库 --Expat, 将该自解压文件解压到C:\expat即可。
3.Boost.MPI所需MPI类库 -- Boost的官方站点说需要MPICH或OpenMPI之类的支持,事实上在Windows下总是会提示需要MPIC++,事实上你需要的是Microsoft Cluster Pack SDK,下载并默认安装在c:\Program Files\Microsoft Compute Cluster Pack下。
这里我遇到两个问题,一并说一下:
如果下载的是Microsoft HPC Pack 2008 SDK,或者Microsoft Compute ClusterPack不是装到默认的路径下,那bjam就会抓瞎,找不到mpic++的路径,这时候可以修改一下mpi.jam(在tools\build\v2\tools):
现在完全编译Boost所需要的类库都准备好了。
下载Boost并解压到C:\boost.src,进入Visual studio prompt,然后运行boost.src目录下的bootstrap.bat,这个脚本会帮你生成编译所需的bjam.exe文件。
如果你机器上同时有多个不同版本的VC++存在,先修改project-config.jam,将
"using msvc ;"改为诸如" using msvc : 9.0 ;"
要支持mpi,你可以建立一个user-config.jam文件,然后添加一行“using mpi ;”即可
接下来的工作,我写了个小脚本boost.bat
编译后会得到debug和release两个版本的boost,至此Boost编译完成。现在我们开始配置visual studio以方便以后使用Boost类库。
先设置一个环境变量
接着打开Visual studio的菜单 tools-->Options...->projects and solutions-->VC++ directories 如图添加Boost类库的头文件和库文件的路径。
下面这一小段代码用于测试设置是否正确:
如无差错,这段代码应该可以正确编译并链接。这时候可以删除boost.src。 (#)
【Boost】 在Windows下编译Boost 文章分类:C++编程 这系列文章将逐一介绍Boost库的具体内容。首先我们从Boost在Windows下编译开始讲解。
对于大部分Boost应用来说,它是不用编译的,直接包含头文件就可使用,如:
anyarrayasioconversioncrcbind/mem_fnenable_iffunctionlambdamplsmart_pt
只有少部分需要编译成库文件,需要编译的库如下:
date_timefilesystemfunction_typesgraphiostreamsmathmpiprogram_optionspythonregexserializationsignalssystemtestthreadwave
要完全编译boost库需要先准备一些第三方库:
1. Regex所需Unicode支持类库 -- ICU
编译ICU较为简单,解开ICU包之后,在其目录下可以找到一个叫"allinone"的目录,用Visual studio或者visual studio express打开里面的allinone.sln,选择release,即可以编译完成,编译之后,将include目录和release目录下的库文件拷贝出来,分别放在C:\icu\include和C:\icu\lib.
2. Graph所需的Xml处理类库 --Expat, 将该自解压文件解压到C:\expat即可。
3.Boost.MPI所需MPI类库 -- Boost的官方站点说需要MPICH或OpenMPI之类的支持,事实上在Windows下总是会提示需要MPIC++,事实上你需要的是Microsoft Cluster Pack SDK,下载并默认安装在c:\Program Files\Microsoft Compute Cluster Pack下。
这里我遇到两个问题,一并说一下:
如果下载的是Microsoft HPC Pack 2008 SDK,或者Microsoft Compute ClusterPack不是装到默认的路径下,那bjam就会抓瞎,找不到mpic++的路径,这时候可以修改一下mpi.jam(在tools\build\v2\tools):
local cluster_pack_path_native = "你的路径" ;
现在完全编译Boost所需要的类库都准备好了。
下载Boost并解压到C:\boost.src,进入Visual studio prompt,然后运行boost.src目录下的bootstrap.bat,这个脚本会帮你生成编译所需的bjam.exe文件。
如果你机器上同时有多个不同版本的VC++存在,先修改project-config.jam,将
"using msvc ;"改为诸如" using msvc : 9.0 ;"
要支持mpi,你可以建立一个user-config.jam文件,然后添加一行“using mpi ;”即可
接下来的工作,我写了个小脚本boost.bat
@echo Making all Boost library -- By Ray Linnset EXPAT_INCLUDE=C:\USR\INCLUDEset EXPAT_LIBPATH=C:\USRset INCLUDE=%INCLUDE%;C:\Program Files\Microsoft Compute Cluster Pack\include;C:\Program Files\Microsoft Compute Cluster Pack\Include\amd64;set LIBPATH=%LIBPATH%;C:\Program Files\Microsoft Compute Cluster Pack\Lib\amd64;echo adding -a to force rebuild:debugbjam -s HAVE_ICU=1 -s ICU_PATH=C:\usr threading=multi link=static runtime-link=shared variant=debug -s BZIP2_SOURCE="C:\win32_utils\bzip2-1.0.5" -s ZLIB_SOURCE="C:\win32_utils\zlib-1.2.5" --user-config="./user-config.jam" --prefix="C:\boost" install:releasebjam -s HAVE_ICU=1 -s ICU_PATH=C:\usr threading=multi link=static runtime-link=shared variant=release -s BZIP2_SOURCE="C:\win32_utils\bzip2-1.0.5" -s ZLIB_SOURCE="C:\win32_utils\zlib-1.2.5" --user-config="./user-config.jam" --prefix="C:\boost" install
编译后会得到debug和release两个版本的boost,至此Boost编译完成。现在我们开始配置visual studio以方便以后使用Boost类库。
先设置一个环境变量
set Boost=C:\boost
接着打开Visual studio的菜单 tools-->Options...->projects and solutions-->VC++ directories 如图添加Boost类库的头文件和库文件的路径。
下面这一小段代码用于测试设置是否正确:
#include "stdafx.h"#include#include #include #include #include int _tmain(int argc, _TCHAR* argv[]){std::string line;static const boost::regex pat("^Subject:(Re:|Aw:)*(.*)");while (std::cin){std::getline(std::cin, line);boost::smatch matches;if(boost::regex_match(line, matches, pat))std::cout << matches[2] << std::endl;}}
如无差错,这段代码应该可以正确编译并链接。这时候可以删除boost.src。 (#)
为什么我在turboc 2.0下编译的程序在windows xp下不能运行呢?
在DOS下编译JAVA
有没有在windows下运行的C语言编辑、编译工具
在linux下如何编译安装
VC6.0 无法在 NT 下编译
怎样在windows下安装JAVA环境并配置环境变量,并且怎样编译和运行JAVA程序?
如何编译windows控件
操作系统是在什么机器下编译的
请问如何在DOS下编译CS文件
我在VS2003下编译VC6的源代码不能通过
如何在非VS环境下编译C++源代码
为什么c语言程序在c++环境下不能编译?
如何在命令行方式下编译连接执行c++程序?
这样在VC下编译C语言可以吗?
谁有在xp下编译的文件系统(操作系统课程设计)
老代码在VisualStudio2005下编译的问题
帮编译下歌词
问下,哪几台转,什么时候有重bo
BO那有下??怎么用??
Windows下用C写的dll如何用EVC重新编译?
在linux下g++编译的可执行文件怎么在widows下运行
在LInux(Unix)下编的C程序在VC6.0下通不过编译?
哪些程序在windows xp里可以直接运行而不需要编译软件?
为什么vc编译的代码(例如windows)可以在不同的cpu上运行