project-config.jam:
boost.python官网安装说明
注:任何软件的安装都可以参照软件的官网,官网都有详细的说明,比其他的博客靠谱。
博客:
https://blog.csdn.net/qq_31720329/article/details/78184262
手动链接库:(上文的./b2 install ,就是编译完成后进行链接。./b2 install clean就是清除链接。)
连接头文件以及动态连接库和静态连接库。
rf:
https://blog.csdn.net/Doubao93/article/details/80176537
下载Boost库,这里我选择下载boost_1_55_0.zip解压boost文件到本地目录(如G:\boost_1_55_0),可以发现解压后的文件中有一个bootstrap.bat文件。
然后以管理员身份打开cmd窗口,
上述命令执行完毕后可以发现G:\boost_1_55_0下新生成了一个bjam.exe文件
在命令窗口中输入语句:bjam.exe
此过程将默认根据系统已经安装好的编译工具(VS2008,2010,2012,2013)等编译相应的Lib文件、头文件等。(此步骤大概需要10分钟)
可以看到msvc 12.0,这是因为我系统中已经安装过了VS2013
msvc : 8.0是VS2005
msvc : 10.0是VS2010
msvc : 12.0是VS2012、VS2013
第5步执行成功后会有如下信息提示
至此我们已经完成了boost库的安装,下面需要配置一下VS2013了。新建一个VS2013控制台应用程序(工程名为boostest),添加如下代码
#include "stdafx.h"
#include <boost/lexical_cast.hpp>
#include <iostream>
using namespace std
int main()
{
using boost::lexical_cast
int a = lexical_cast<int>("123")
double b = lexical_cast<double>("123.0123456789")
string s0 = lexical_cast<string>(a)
string s1 = lexical_cast<string>(b)
cout <<"number: " <<a <<" " <<b <<endl
cout <<"string: " <<s0 <<" " <<s1 <<endl
int c = 0
try{
c = lexical_cast<int>("abcd")
}
catch (boost::bad_lexical_cast&e){
cout <<e.what() <<endl
}
return 0
}
添加boostest工程的包含目录和库目录
包含目录添加 G:\boost_1_55_0
库目录添加G:\boost_1_55_0\stage\lib
进入代码窗口编译并成功运行说明BOOST库确实已经配置成功,可以放心使用。
一、 下载boost
boost_1_51_0.zip 下载并解压到C盘根文件夹
二、编译boost
1、生成生命行程序
执行bootstrap.bat
2、编译
执行b2.exe,完成后显示:
The Boost C++ Libraries were successfully built!
The following directory should be added to compiler include paths:
C:/boost_1_51_0
The following directory should be added to linker library paths:
C:\boost_1_51_0\stage\lib
三、使用boost
1、创建一个win32 console
2、引用bootst
C/C++ ->Additional Include Directories: C:\boost_1_51_0
Linker->Additional Library Directories: C:\boost_1_51_0\stage\lib
Linker->Input->Additional Dependencies :libboost_signals-vc110-mt-gd-1_51.liblibboost_regex-vc110-mt-gd-1_51.lib
3、Code如下:
#include "stdafx.h"
#include <boost/regex.hpp>
#include <boost/signals.hpp>
#include <boost/lambda/lambda.hpp>
#include <iostream>
#include <cassert>
struct print_sum {
void operator()(int x, int y) const { std::cout <<x+y <<std::endl}
}
struct print_product {
void operator()(int x, int y) const { std::cout <<x*y <<std::endl}
}
int _tmain(int argc, _TCHAR* argv[])
{
boost::signal2<void, int, int, boost::last_value<void>, std::string>sig
sig.connect(print_sum())
sig.connect(print_product())
sig(3, 5)
std::string line
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
}
return 0
}
示例程序在vs2012下通过,输出:
8
15
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)