第一步:到官网www.boost.org,下载boost最新版boost_1_48_0.zip
第二步:将boost压缩包解压到C盘根目录下(在C盘操作简单,不会出错),目录为C:\BOOST_1_48_0,里面就是boost的源码和需要编译的文件及文档资料
第三步:用打开一个cmd命令窗口,在C:\Program Files\Microsoft Visual Studio 9.0\VC\bin目录下找到VCVARS32.bat,拖到cmd命令窗口,按回车
第四步:将cmd中的目录跳转到C:/boost_1_48_0/tools/build/v2下,拖动bootstrap.bat批处理文件到cmd,,按回车键,随即就会在C:/boost_1_48_0/tools/build/v2下生产一个bjam.exe和b2.exe。
第五步: 将bjam.exe复制或移动到boost的根目录下,即C:/boost_1_48_0下面。
第六步:将cmd命令中的目录跳到boost的根目录下,然后,输入
bjam --build-type=complete --with-regex --toolset=msvc-9.0 stage
bjam --build-type=complete --with-system --toolset=msvc-9.0 stage
bjam --build-type=complete --with-thread --toolset=msvc-9.0 stage
bjam --build-type=complete --with-date_time --toolset=msvc-9.0 stage
注意:整个操作过程中cmd命令窗口必须保证是开始打开的那个
附1:cmd 目录跳转指令 举例,例如,跳到d盘下的一个名为test的目录下,则输入cd d:\test按回车。
我用是就是VS2008,照着上面的步骤操作完后,最后按照上面提示的分别在include和lib中包含,结果还是没有通过。最后直接include和lib中直接包含C:\boost_1_48_0目录,程序成功通过编译和链接!!
boost_1_48_0 在VS2008下的安装 Boost.Asio安装 - luolired - Luolired
============================================================
其他说明:
以后还需要其他库怎么办?
按照上面的套用就行了。比如你的代码里有#include <boost/serialization/vector.hpp>,很明显你需要serialization库,bjam --build-type=complete --with- serialization --toolset=msvc-9.0 stage。
网上找的一些有用的资料:
编译参数:
stage/install :stage表示只生成库(dll和lib),install还会生成包含头文件的include目录。本人推荐使用 stage,因为install生成的这个include目录实际就是boost安装包解压缩后的boost目录(E:/SDK /boost_1_39_0/boost,只比include目录多几个非hpp文件,都很小),所以可以直接使用,而且不同的IDE都可以使用同一套头文件,这样既节省编译时间,也节省硬盘空间。
toolset :指定编译器,可选的如borland、gcc、msvc(VC6)、msvc-9.0(VS2008)等。
without/with :选择不编译/编译哪些库。本人不需要编译python库,所以排除之,可以根据各人需要选择,默认是全部编译。但是需要注意,如果选择编译python的话,是需要python语言支持的,应该到python官方主页http://www.python.org/下载安装。
stagedir/prefix :stage时使用stagedir,install时使用prefix,表示编译生成文件的路径。推荐给不同的IDE指定不同的目录,如VS2008对应的是E:/SDK/boost_1_39_0/vc9/lib,VC6对应的是E:/SDK/boost_1_39_0 /vc6/lib,否则都生成到一个目录下面,难以管理。如果使用了install参数,那么还将生成头文件目录,vc9对应的就是
E:/SDK /boost_1_39_0/vc9/include/boost-1_39/boost,vc6类似(光这路径都这样累赘,还是使用stage好)。
build-dir :编译生成的中间文件的路径。这个本人这里没用到,默认就在根目录(E:/SDK/boost_1_39_0)下,目录名为bin.v2,等编译完成后可将这个目录全部删除(没用了),所以不需要去设置。
link :生成动态链接库/静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用static方式。这里需要注意的是,static 方式下,最终生成的很多静态链接库大小都在几兆、几十兆,甚至接近百兆。这么大的库我们一般是不会采用静态链接方式的,所以这些库不推荐以static方式编译(without掉);如果已经编译了赶快删,肯定没用,否则将占用近1G的硬盘空间。以下是巨型库黑名单:wave、graph、math、 regex、test、program_options、serialization、signals。
runtime-link :动态/静态链接C/C++运行时库。同样有shared和static两种方式,这样runtime-link和link一共可以产生4种组合方式。虽然它和link属性没有直接关系,但我们习惯上,一个工程如果用动态链接那么所有库都用动态链接,如果用静态链接那么所有库都用静态链接。所以这样其实只需要编译2种组合即可,即link=shared runtime-link=shared和link=static runtime-link=static。
threading :单/多线程编译。一般都写多线程程序,当然要指定multi方式了;如果需要编写单线程程序,那么还需要编译单线程库,可以使用single方式。
debug/release :编译debug/release版本。一般都是程序的debug版本对应库的debug版本,所以两个都编译。
// over.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <boost/asio.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
int main()
{
boost::asio::io_service io;
boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));
t.wait();
std::cout << "Hello, world!\n";
return 0;
}
boost_1_48_0 在VS2008下的安装 Boost.Asio安装 - luolired - Luolired
fatal error LNK1104: cannot open file 'libboost_regex-vc80-mt-gd-1_48.lib'
Vs 中添加boost库编译的时候出现了这个问题
弄了好久才找出问题
两个点:
1.Project-->属性-->C/C++-->General-->Additional Include Derectories中加入你的boost目录
2.Project-->属性-->Linker-->General-->Additional Library Derectories中加入<boost>/stage/lib
第二步:将boost压缩包解压到C盘根目录下(在C盘操作简单,不会出错),目录为C:\BOOST_1_48_0,里面就是boost的源码和需要编译的文件及文档资料
第三步:用打开一个cmd命令窗口,在C:\Program Files\Microsoft Visual Studio 9.0\VC\bin目录下找到VCVARS32.bat,拖到cmd命令窗口,按回车
第四步:将cmd中的目录跳转到C:/boost_1_48_0/tools/build/v2下,拖动bootstrap.bat批处理文件到cmd,,按回车键,随即就会在C:/boost_1_48_0/tools/build/v2下生产一个bjam.exe和b2.exe。
第五步: 将bjam.exe复制或移动到boost的根目录下,即C:/boost_1_48_0下面。
第六步:将cmd命令中的目录跳到boost的根目录下,然后,输入
bjam --build-type=complete --with-regex --toolset=msvc-9.0 stage
bjam --build-type=complete --with-system --toolset=msvc-9.0 stage
bjam --build-type=complete --with-thread --toolset=msvc-9.0 stage
bjam --build-type=complete --with-date_time --toolset=msvc-9.0 stage
注意:整个操作过程中cmd命令窗口必须保证是开始打开的那个
附1:cmd 目录跳转指令 举例,例如,跳到d盘下的一个名为test的目录下,则输入cd d:\test按回车。
我用是就是VS2008,照着上面的步骤操作完后,最后按照上面提示的分别在include和lib中包含,结果还是没有通过。最后直接include和lib中直接包含C:\boost_1_48_0目录,程序成功通过编译和链接!!
boost_1_48_0 在VS2008下的安装 Boost.Asio安装 - luolired - Luolired
============================================================
其他说明:
以后还需要其他库怎么办?
按照上面的套用就行了。比如你的代码里有#include <boost/serialization/vector.hpp>,很明显你需要serialization库,bjam --build-type=complete --with- serialization --toolset=msvc-9.0 stage。
网上找的一些有用的资料:
编译参数:
stage/install :stage表示只生成库(dll和lib),install还会生成包含头文件的include目录。本人推荐使用 stage,因为install生成的这个include目录实际就是boost安装包解压缩后的boost目录(E:/SDK /boost_1_39_0/boost,只比include目录多几个非hpp文件,都很小),所以可以直接使用,而且不同的IDE都可以使用同一套头文件,这样既节省编译时间,也节省硬盘空间。
toolset :指定编译器,可选的如borland、gcc、msvc(VC6)、msvc-9.0(VS2008)等。
without/with :选择不编译/编译哪些库。本人不需要编译python库,所以排除之,可以根据各人需要选择,默认是全部编译。但是需要注意,如果选择编译python的话,是需要python语言支持的,应该到python官方主页http://www.python.org/下载安装。
stagedir/prefix :stage时使用stagedir,install时使用prefix,表示编译生成文件的路径。推荐给不同的IDE指定不同的目录,如VS2008对应的是E:/SDK/boost_1_39_0/vc9/lib,VC6对应的是E:/SDK/boost_1_39_0 /vc6/lib,否则都生成到一个目录下面,难以管理。如果使用了install参数,那么还将生成头文件目录,vc9对应的就是
E:/SDK /boost_1_39_0/vc9/include/boost-1_39/boost,vc6类似(光这路径都这样累赘,还是使用stage好)。
build-dir :编译生成的中间文件的路径。这个本人这里没用到,默认就在根目录(E:/SDK/boost_1_39_0)下,目录名为bin.v2,等编译完成后可将这个目录全部删除(没用了),所以不需要去设置。
link :生成动态链接库/静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用static方式。这里需要注意的是,static 方式下,最终生成的很多静态链接库大小都在几兆、几十兆,甚至接近百兆。这么大的库我们一般是不会采用静态链接方式的,所以这些库不推荐以static方式编译(without掉);如果已经编译了赶快删,肯定没用,否则将占用近1G的硬盘空间。以下是巨型库黑名单:wave、graph、math、 regex、test、program_options、serialization、signals。
runtime-link :动态/静态链接C/C++运行时库。同样有shared和static两种方式,这样runtime-link和link一共可以产生4种组合方式。虽然它和link属性没有直接关系,但我们习惯上,一个工程如果用动态链接那么所有库都用动态链接,如果用静态链接那么所有库都用静态链接。所以这样其实只需要编译2种组合即可,即link=shared runtime-link=shared和link=static runtime-link=static。
threading :单/多线程编译。一般都写多线程程序,当然要指定multi方式了;如果需要编写单线程程序,那么还需要编译单线程库,可以使用single方式。
debug/release :编译debug/release版本。一般都是程序的debug版本对应库的debug版本,所以两个都编译。
// over.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <boost/asio.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
int main()
{
boost::asio::io_service io;
boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));
t.wait();
std::cout << "Hello, world!\n";
return 0;
}
boost_1_48_0 在VS2008下的安装 Boost.Asio安装 - luolired - Luolired
fatal error LNK1104: cannot open file 'libboost_regex-vc80-mt-gd-1_48.lib'
Vs 中添加boost库编译的时候出现了这个问题
弄了好久才找出问题
两个点:
1.Project-->属性-->C/C++-->General-->Additional Include Derectories中加入你的boost目录
2.Project-->属性-->Linker-->General-->Additional Library Derectories中加入<boost>/stage/lib