boost于vs2017下编译(6432bit)

xiaoxiao2021-02-28  135

下面文章是vs2015编译, 将140换为141,则可以编译给vs2017用. 编译64位: 先打开vs2017 64位环境的cmd环境, 进入boost源目录, 运行bootstrap.bat,然后运行下面编译命令, stagedir用来指定库存放的位置 bjam stage --toolset=msvc-14.1 architecture=x86 address-model=64 --without-graph --without-graph_parallel --stagedir="c:\boost\boost_1_64_0\bin\vc141-x64" link=static runtime-link=shared runtime-link=static threading=multi debug release编译32位: 先打开vs2017 x86环境的cmd环境, 进入boost源目录, 运行 bootstrap.bat,然后运行下面编译命令, bjam stage --toolset=msvc-14.1 --without-graph --without-graph_parallel --stagedir="c:\boost\boost_1_64_0\bin\vc141-x86" link=static runtime-link=shared runtime-link=static threading=multi debug release要等好一会儿的. =========================================  

编译并使用boost库(win7+boost1.63+vs2015+32位or 64位)

标签: windowsboost1.63vs6432   752人阅读  评论(0)  收藏  举报   分类: c、c++(43) 

目录(?)[+]

首先下载得到boost的最新版(目前最新版是1.63)

下载地址: http://www.boost.org

也可以从这里直接下载

http://download.csdn.net/detail/zengraoli/9815337

下载完成后解压出来

编译32位的boost库

打开vs的32位命令行工具

进入到boost源代码文件夹中

进入到boost源代码文件夹中

运行bootstrap.bat

执行如下操作,对boost进行编译

msvc版本14.0对应的是vs2015--stagedir是指定编译后存放的目录,文章附录有vs版本对应编号)

[cpp]  view plain  copy  print ? bjam stage --toolset=msvc-14.0 --without-graph --without-graph_parallel --stagedir="D:\boost\boost_1_63_0\bin\vc14" link=static runtime-link=shared runtime-link=static threading=multi debug release  

这样得到的是就是32位的boot库

编译64位的boost库

打开vs的64位命令行工具

进入到boost源代码文件夹中

运行bootstrap.bat

执行如下操作,对boost进行编译

msvc版本14.0对应的是vs2015--stagedir是指定编译后存放的目录)

[cpp]  view plain  copy  print ? bjam stage --toolset=msvc-14.0 architecture=x86 address-model=64 --without-graph --without-graph_parallel --stagedir="D:\boost\boost_1_63_0\bin\vc14-x64" link=static runtime-link=shared runtime-link=static threading=multi debug release  

这样得到的是就是64位的boot库

开始使用boost

设置测试的程序为64位

设置附加的包含路径(下载之后解压的boost文件夹):

设定库路径:

然后建立第一个boost项目,代码如下:

[cpp]  view plain  copy  print ? #include "boost/thread.hpp"   #include "iostream"   using namespace std;      void mythread()   {       cout << " hello,thread! " << endl;   }      int _tmain(int argc, _TCHAR* argv[])   {       boost::function<void()> f(mythread);       boost::thread t(f);       t.join();       cout << " thread is over! " << endl;             return 0;   }   得到输出

附录

附上版本对应编号

[cpp]  view plain  copy  print ? VC6   VC7(2003)   VC8(2005)   VC9(2008)   VC10(2010)   VC11(2012)   VC12(2013)  

一个boost线程池的例子

附带一个boost使用线程池的例子

http://blog.csdn.net/zengraoli/article/details/70187693

转载请注明原文地址: https://www.6miu.com/read-17333.html

最新回复(0)