windows boost 编译, 我用的版本是 boost_1_54_0

Boost库是一个功能强大、构造精巧、跨平台、开源并且完全免费的C++程序库
  要使用Boost库,首先确认一下你使用的开发环境是否支持编译boost库(http://www.boost.org/users/history/version_1_46_1.html
  以windows的msvc编译器为例,支持编译boost库是Visual C++: 7.1, 8.0, 9.0 10.0
  如果你还在用VC++ 6.0的话,只能抱歉了。VC6编译器由于不支持模板偏特化等许多新特性,所以有的Boost库会缺少功能甚至不能使用。
  安装Boost库的方法:
  1、从Boost网站(www.boost.org)下载压缩包,解压到本地硬盘任意位置。
  本文以boost_1_46_1版本为例,解压位置为 D:\boost_1_16_1\
  2、进入目录D:\boost_1_16_1\,运行bootstrap.bat,获得bjam.exe 程序

             //有的版本的方法说在tools文件夹下找这个文件,但是我没有找到,经验证,我贴的方法有效
  3、命令行方式执行: bjam stage --toolset=msvc-7.1 --build-type=complete --layout=versioned
  其中,
  stage 选项指定boost使用本地构建,当前目录下会创建一个stage目录,编译后的lib库会在其中。
  toolset 选项指定编译器,对于使用visual studio 开发工具的程序员来说,需要正确填写msvc的版本号:
  vs2003 : msvc-7.1
  vs2005 : msvc-8.0
  vs2008 : msvc-9.0
  vs2010 : msvc-10.0
  build-type 选项指定编译类型,
  layout 选项指定需要编译的库名及头文件的地址目录名的生成策略。默认Windows下为versioned
  接下来你可以关上显示屏去做别的事了,因为Boost库的完整编译会耗费大量的时间(本人在pc上花了约1个小时时间)。
  完整编译后,需要在visual studio IDE 中设置包含目录和库目录。
  Windows Visual Studio 200x IDE 通用配置
  =======================================
  在菜单中选择:
  1. Tools (工具)
  2. Options (选项)
  3. Project and Solutions (项目)
  4. VC++ Directories (VC++ 目录)
  5. Show directories for (显示以下内容的目录): Include Files (包含文件) 增加 D:\boost_1_46_1
  6. Show directories for (显示以下内容的目录): Library Files (库文件) 增加 D:\boost_1_46_1\stage\lib
  如果是Visual Studio 2010,不再是从tools->options->project and solutions->VC++ directories 中配置库目录和包含目录,而是对自己的项目单独配置。
  先添加/导入自己的项目,在窗体左侧项目的属性管理器中
  1.单击第一个按钮(属性),弹出项目属性页
  2.选择配置属性->VC++目录
  3.包含目录中增加 D:\boost_1_46_1
  4.库目录中增加 D:\boost_1_46_1\stage\lib
  OK,一切准备就绪。可以开始使用Boost库了。下面的一个小程序可以测试一下boost库是否安装正确。
  #include <boost/thread/thread.hpp>
  #include <iostream>
  void hello() {
  std::cout 《 "Hello world, I'm a thread!" 《 std::endl;
  }
  int main(int argc, char* argv[]) {
  boost::thread thrd(&hello);
  thrd.join();
  return 0;
  }
  正确安装的话,会在控制台输出一行"Hello world, I'm a thread!"的信息。
  完整编译Boost库费时费力,而且也不一定在开发中都用到,所以也可以自行选择要编译的库。
  只要在运行bjam的命令中,添加--with-<库名> 选项就可以了,或--without-<库名>关闭某个库的编译。
  bjam还有许多选项,可参考bjam的文档以获得更多信息。
 

 


   免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 

本篇文章来源于 黑基网-中国最大的网络安全站点 原文链接:http://www.hackbase.com/tech/2011-07-19/64570.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"boost_throw_exception_current_function was not declared"是一个编译错误,意味着在编译过程中找不到boost_throw_exception_current_function的声明。 首先,我们需要了解boost_throw_exception_current_function是Boost库中的一个函数。Boost是一个流行的C++开源库,提供了许多具有扩展功能的工具和库函数。 出现这个错误可能有几种原因: 1. 未正确安装Boost库:确保已正确安装并配置了Boost库,包括包含正确的头文件路径和链接到正确的库文件。 2. 缺少必要的头文件:检查代码中是否包含了正确的头文件。boost_throw_exception_current_function可能是某个其他Boost库函数的依赖项,因此你可能需要包含相应的Boost头文件。 3. Boost版本不兼容:某些函数在不同版本Boost库中可能被删除或更改。确保你正在使用与代码兼容的Boost版本。 解决这个错误的方法可以尝试以下步骤: 1. 确保你已正确安装并配置了Boost库。 2. 确保你已包含所需的头文件,可能包括boost_throw_exception_current_function所依赖的头文件。 3. 如果确定你的代码与Boost版本兼容,但问题仍然存在,那么可能是编译器无法找到boost_throw_exception_current_function的声明。这可能是因为函数名被更改或删除。在这种情况下,你应该查找类似的功能或更改你的代码以适应最新的Boost版本。 总之,解决这个问题需要确保正确安装Boost库、包含正确的头文件并与Boost版本兼容。如果问题仍然存在,可能需要进一步调查为什么编译器无法找到该函数的声明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值