序言
最近了解各大互联网公司的校招要求,发现了解Boost程序库也是不可或缺的一部分~
于是,决定潜心研究下,这个准标准库~
首先,在官网下载boost的最新版本Boost 1.59.0 ,这是当前的最新版本。
下面详细给出,VS2013环境下配置boost的详细步骤!
Boost编译预处理
(1)首先,将下载的压缩包,解压到一个目录下(下面是我的设置):
(2)打开文件夹下有个bootstrap.bat文件:
(3)双击运行boostrap.bat文件,自动执行完自动关闭,此时会发现文件夹下,增加了bjam.exe文件
(4)同理,双击运行该bjam.exe文件,它会自动执行,执行结束自动关闭。
至此,boost库初期安装完成。
VS2013环境配置
(1)打开VS2013 , 创建一个控制台空项目test:
添加文件main.cpp,写入如下代码:
<code class="hljs cpp has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#include <boost/lexical_cast.hpp> </span> <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#include <iostream> </span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">using</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">namespace</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">std</span>; <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> main() { <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">using</span> boost::lexical_cast; <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> a = lexical_cast<<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span>>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"123"</span>); <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">double</span> b = lexical_cast<<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">double</span>>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"123.0123456789"</span>); <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">string</span> s0 = lexical_cast<<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">string</span>>(a); <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">string</span> s1 = lexical_cast<<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">string</span>>(b); <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">cout</span> << <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"number: "</span> << a << <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" "</span> << b << endl; <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">cout</span> << <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"string: "</span> << s0 << <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" "</span> << s1 << endl; <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> c = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>; <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">try</span>{ c = lexical_cast<<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span>>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"abcd"</span>); } <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">catch</span> (boost::bad_lexical_cast& e){ <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">cout</span> << e.what() << endl; } system(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"pause"</span>); <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>; }</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li></ul>
此时,你会发现:
,我们的VS还不识别boost库。
(2)在菜你的项目test右键 选择 ->属性页(VS2013在这才能找到相关的属性配置栏)->C/C++,在 附加包含目录添加或编辑Boost的文件路径,如下图所示:
添加完毕,确定即可;
(3)在 链接器 选项卡中,找到附加库目录,添加Boost的libs的目录:
添加完毕,确定即可。
此时你会发现,在代码编辑器中红色波浪线的error提示已经消失不见了。
F5运行程序,正确执行:
总结
到此为止,VS环境中的Boost配置就完成了,接下来好好学习boost吧~~~