Boost多线程配置

来源:互联网 发布:ubuntu教程 pdf 编辑:程序博客网 时间:2024/06/06 02:07
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream> 
#include <boost/thread.hpp>  
#include <boost/date_time.hpp>      
       
voidworkerFunc() 
    boost::posix_time::seconds workTime(3);         
    std::cout << "Worker: running" << std::endl;   
       
    // Pretend to do something useful...
    boost::this_thread::sleep(workTime);         
    std::cout << "Worker: finished" << std::endl; 
}   
       
intmain(intargc,char* argv[]) 
    std::cout << "main: startup" << std::endl;         
    boost::threadworkerThread(workerFunc);   
       
    std::cout << "main: waiting for thread" << std::endl;         
    workerThread.join();   
       
    std::cout << "main: done" << std::endl;         
    return0; 
}

 

例子代码创建了一个boost线程对象,传递给他工作函数的参数,在完成时退出该线程。

这个简单的例子,我用来验证Boost线程库设置是否成功。以下步骤是运行这个简单例子的必备步骤。

 

1. 下载并安装Boost

如果你还没有安装好Boost,可以从这里下载并安装:http://www.boost.org/users/download/ 或者 http://www.boostpro.com/download ,安装好后在你的Visual Studio项目中,选择配置属性->附加:包含目录。然后输入Boost的安装目录。

完成以上步骤后,首次编译上面的代码可能会遇到如下错误:

LINK : fatal error LNK1104: cannot open file 'libboost_thread-vc100-mt-gd-1_46_1.lib'

意思是找不到库文件,在Boost中,必须建立自己的库。

 

2. 获得bjam

下一步是建立bjam.exe, 我发现最简单的方法是使用BoostPro提供的安装程序。在我的例子中,使用的是boostpro 1.46.1的安装程序。下载并运行此程序。对于我来说,我最喜欢的还是VS 2003.NET 和VS 2010两个版本。

在安装过程中,选择需要安装什么库,没必要全选,选择你需要的即可。

3. 创建 bjam.exe可执行文件

bjam安装后,打开命令行然后到src目录下,例如:

C:\Program Files\boost_1_46_1\tools\build\v2\engine\src

 

运行build.bat。注意脚本将在bin.ntx86子目录下创建bjam.exe可执行文件。

C:\Program Files\boost_1_46_1\tools\build\v2\engine\src\bin.ntx86

 

4. 更新PATH环境变量

现在添加bjam.exe到PATH环境变量中。在Windows 7,可以右键点击“计算机”(或我的电脑),选择属性,然后在高级系统设置中修改。

点击环境变量PATH,选择编辑按钮。

将目录添加进去,例如:C:\Program Files\boost_1_46_1\tools\build\v2\engine\src\bin.ntx86

 

5. 运行bjam可执行文件

在命令行,到C:\Program Files\boost_1_46_1目录下,输入bjam,程序创建过程需要等待5-15分钟。

6. 设置Visual Studio项目属性

 

在你的Visual Studio 项目中,选择配置属性->连接器->输入->附加依赖项,然后输入 libboost_thread-vc100-mt-gd-1_46_1.lib

在你的Visual Studio项目中,选择项目配置属性->连接器->常规->附加库目录,

告诉它stage/lib目录。

然后呢,我一开始所展示的Boost线程代码就可以编译运行了,输出如下:

 

1
2
3
4
5
main: startup
main: waiting forthread
Worker: running
Worker: finished
main: done

转自http://blog.okbase.net/haobao/archive/3.html

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 刚下高速限行怎么办 西安限号外地车怎么办 深圳下高速限行怎么办 物业断业主的电怎么办 物业要求拆除外晾衣架怎么办 安置费一次给了房子没建好怎么办 虎牙充值不到账怎么办 平安保险交20年怎么办 u盘里东西乱码了怎么办 手机指环支架松了怎么办 运动完放屁很臭怎么办 腾讯柒个我要会员怎么办 海风吹的变黑了怎么办 冻豆角炖不烂糊怎么办 腿被热水烫了怎么办 肉和冰箱冻住了怎么办 解冻的肉臭了怎么办 临时用电电缆线破皮怎么办 阳台按自来水墙面脱落怎么办 墙被暖气熏黑了怎么办 下水管比地砖低怎么办 马桶下水管短了怎么办 下水管比马桶低怎么办? 寻常疣液氮冷冻后该怎么办 寻常疣冷冻后起水泡胀痛怎么办 冷冻后大水泡痒怎么办 19岁的宫颈糜烂怎么办 发面酸了没有碱怎么办 面发时间长酸了怎么办 丽珠兰打完红肿怎么办 美的冰柜冷藏室结冰怎么办 胃下午和晚上痛怎么办 二胡弓毛粗拉外弦触到里弦怎么办 电视成黑白的了怎么办 城市居民无钱入社保医保怎么办 老婆说离婚又找不到怎么办 爱一个人太累了怎么办 车凹陷漏底漆了怎么办 燕子窝掉下来了怎么办 文科没考上一本怎么办 学校午休小学孩子吵闹怎么办