zoukankan      html  css  js  c++  java
  • 转:window下编译boost

    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 程序
    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的文档以获得更多信息。

  • 相关阅读:
    linux 命令——19 find (转)
    linux 命令——18 locate (转)
    linux 命令——17 whereis(转)
    linux 命令——16 which(转)
    linux 命令——15 tail (转)
    linux 命令——14 head (转)
    Java for LeetCode 038 Count and Say
    Java for LeetCode 037 Sudoku Solver
    Java for LeetCode 036 Valid Sudoku
    Java for LeetCode 035 Search Insert Position
  • 原文地址:https://www.cnblogs.com/306b/p/2811251.html
Copyright © 2011-2022 走看看