在Windows下 Build Boost线程库

原创 2002年05月15日 09:22:00

在Windows下 Build Boost线程库

作者:伐木工

    Boost库中许多都是在.hpp中实现的,只要包含路径就可以直接就拿来使用。但是仍然有一些需要build为目标库才能够使用,包括Python,正则表达式和多线程库。

    折腾了几天,终于将Boost的多线程库搞定了,现在就将我得方法写出来,希望能给遇到麻烦的朋友一些参考。

   环境

   下面是我的一些安装路径,在安装过程中需要根据实际情况调整:

     操作系统:Win2000

      VC6:      F:/Microsoft Visual Studio/VC98

      BOOST:    F:/boost_1_27_0

    安装Jam

    Build Boost线程库需要使用工具Boost.Jam。工欲善其事,必先利其器。现在先来看看如何安装Jam。

    命令行:

    F:/boost_1_27_0> set VISUALC=""F:/Microsoft Visual Studio/VC98""

    F:/boost_1_27_0> set JAM_TOOLSET=VISUALC

    F:/boost_1_27_0/tools/jam_src>nmake -f bulids/win32-visualc.mk 

    说明:

    首先是设置环境变量VISUALC和JAM_TOOLSET。VISUALC中有两个双引号是为了能够识别空格。如果你的VC安装路径不含空格就不必加上双引号了: set VISUALC=F:/visual/VC98。

    接着就是使用nmake命令编译了。不同的操作系统和不同的开发工具对应不同的mk文件,都在tools/jam_src/builds/目录下。

    如果你使用的VC7的话就会有问题,由于编译过程中要使用到advapi32.lib这个文件,VC6中是在vc98/lib/目录下,而VC7是在platformsdk/lib/,这样就会找不到路径。由于没有仔细研究Jam,不知道在哪里修改这个路径,只好请大家自己动手了。

    如果不想让系统的环境变量变得杂乱不堪,可以用set VISUAL=命令将变量清除。

    完成之后,就可以在/tools/build/jam_src下看见一个新的目录,bin.ntx86,其中就包含了jam.exe。

    Build

    现在该开始创建Boost线程目标库了。

    命令行:

    f:/boost_1_27_0>set Path=%PAHT:~0%;F:/boost_1_27_0/tools/build/jam_src/bin.ntx86

    f:/boost_1_27_0> set VISUALC="F:/Micors~1/VC98"

    f:/boost_1_27_0> jam -sBOOST_ROOT=. -sTOOLS=msvc

    说明:

    首先将jam.exe的路径加入Path变量中。

    接着设置VISUALC,这里和安装Jam时不同,请注意,用的DOS文件名。

    最后就是执行jam,-sBOOST_ROOT=.表示Boost的根目录是当前目录,-sTOOLS=msvc指明了工具名称,这些名称都是特定的,具体可以访问boost网站查询。

    build需要花些时间,可能还会有不少错误,但可以不必管他。

    完成之后,就会发现/libs/thread/build/bin/目录下多了多了两个文件夹,libboost_thread和libboost_threadmon,其中就可以找到完成lib文件和dll文件。

    使用

    首先在VC中加入路径:

    tools->option中Directories属性页中加入:    

F:/BOOST_1_27_0/LIBS/THREAD/BUILD/BIN/LIBBOOST_THREADMON/MSVC/RELEASE/RUNTIME-LINK-DYNAMIC/THREADING-MULTI

    F:/BOOST_1_27_0/LIBS/THREAD/BUILD/BIN/LIBBOOST_THREAD/MSVC/RELEASE/RUNTIME-LINK-DYNAMIC/THREADING-MULTI

    在工程中加入lib文件:

    在project->setting中link属性页加入使用的lib:libboost_thread.lib libboost_threadmon.lib

    定义BOOST_HAS_THREADS宏,不然就会有如下错误:Thread support is unavailable!

    选择多线程运行库

    在project->setting->C/C++->Code Generation中Use run-time library下拉框中选Multithreaded DLL

     好了,现在就可以体会Boost线程库带给我们的全新感受了。

     由于我也是刚刚才接触Boost,对Boost和Jam工具还不是很了解,不敢妄加评论,以免贻笑大方,所以只是简单的列出了我方法,如果有什么不对的地方请大家指出。

BOOST 库 thread类线程使用 [大三四八九月实习]

thread库为C++增加了线程处理能力,它提供简明清晰的线程、互斥量等概念,可以容易地创建多线程应用程序。thread库也是高度可移植的,它支持使用最广泛的windows和POSIX[Unix下应用...
  • misskissC
  • misskissC
  • 2013年08月09日 17:36
  • 9650

【C++多线程编程】Boost线程库

Boost线程库 Bill Kempf 译:伐木工 标准C++线程即将到来。CUJ预言它将衍生自Boost线程库,现在就由Bill带领我们探索一下Boost线程库。 就...
  • yockie
  • yockie
  • 2014年05月26日 00:31
  • 8471

boost多线程库使用指南

一、基本使用 头文件  namespace  boost  {    class  thread;    class  thread_group; }   1、thread thread的构造形...
  • pizi0475
  • pizi0475
  • 2013年12月30日 08:45
  • 4357

Windows下(不用cygwin)NDK直接编译编译boost 1.55

我使用的是android-ndk-r9d版本,NDK在7以后就不需要依赖于cygwin了 1. boost官网下载boost_1_55_0.tar.gz,解压放在/sources下, 解压后的文件...
  • ly131420
  • ly131420
  • 2015年06月26日 11:41
  • 2999

Boost在Windows上的配置以及的Boost::asio C/S同步例子

一、 下载boost boost.org http://www.boost.org/users/download/ boost_1_51_0.zip 下载并解压到C盘根文件夹 ...
  • hezijian22
  • hezijian22
  • 2014年11月29日 13:57
  • 1666

BOOST 线程完全攻略 - 基础篇

     C++多线程开发是一个复杂的事情,mfc下提供了CWinThread类,和AfxBeginThread等等函数,但是在使用中会遇到很多麻烦事情,例如线程之间参数传递的问题,我们一般都是把参数...
  • IamNieo
  • IamNieo
  • 2008年09月10日 12:48
  • 25870

基于boost库的线程安全queue

STL的queue多线程下是不安全的,当然网上有很多无锁队列,如boost::lockfree::queue就是很好的东西。这里实现一个互斥锁的线程安全队列,基于STL的QUEUE。 /******...
  • oceanperfect
  • oceanperfect
  • 2017年06月08日 11:34
  • 365

Boost编译库下载地址 for VS

下载地址: https://sourceforge.net/projects/boost/files/boost-binaries/
  • liuhhaiffeng
  • liuhhaiffeng
  • 2016年10月09日 08:54
  • 536

windows下pthread线程库的使用

一直以来,由于标准C++中没有纳入线程库,对于多线程的编程感到束手无策,win32的线程机制感觉用着不便。今天想搜索一下有没有其他线程库,想到了Unix下随处可见的pthread线程库,但是苦于这个库...
  • xiaojun111111
  • xiaojun111111
  • 2016年09月09日 23:35
  • 1170

关于windows下用cmake编译VS2015找不到Boost库的解决办法

1、Boost库安装 VS2015的命令提示符工具切换到Boost解压目录运行bootstrap --prefix="D:\Boost\boost_1_62_0" 上一步完成之后接着执行b2 --b...
  • a1491973970
  • a1491973970
  • 2016年12月13日 21:07
  • 2290
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在Windows下 Build Boost线程库
举报原因:
原因补充:

(最多只允许输入30个字)