• Boost-Visual studio 2015环境配置


    下载


    官方网站:http://www.boost.org/

    首页里很容易找到最新版本下载链接

    Windows平台选择.zip或者.7z

    目录结构


    解压后主要目录结构如下

    boost_1_59_0 .................boost根目录

       index.htm .........相当于www.boost.org的首页

       boost .........................Boost 头文件

       libs ............按库分类存放的测试、源码、文档

         index.html ........库文档的首页

         algorithm

         ……其它库

    编译


     

    大部分boost库只要包含头文件就可以使用,为了使用方便,还是先全编译一遍

     

    打开visual studio的命令窗口,我的visual studio 2015的命令窗口位置:“开始->所有程序->Visual Studio 2015->Visual Studio Tools->VS2015 开发人员命令提示”

     

    切换到boost库的根目录,构建Boost.Build:

    1 bootstrap

    完成后,编译boost库

    .2

    编译完成的库放在"boost根目录/stage/lib"下,默认为32位的库,把lib改名为lib86。

    编译x64位boost库

    .2 address-model=64

    编译完成的库同样放在"boost根目录/stage/lib"下,把lib改名为lib64。

     

    如果只想编译个别库,如filesystem,就这么做

    b2 --with-filesystem

    如果想使用静态编译,就这么做

    b2 runtime-link=static

    以boost::regex库为例看最后的编译结果:

          libboost_regex-vc140-mt-gd-1_59.lib

      libboost_regex-vc140-mt-1_59.lib

      libboost_regex-vc140-mt-sgd-1_59.lib

      libboost_regex-vc140-mt-s-1_59.lib

    其中,gd=debug版,s=static

    不同架构的库命名并没有区别 

    测试


     构建一个使用boost::regex的项目,测试是否正常

     

     打开visual studio,创建一个空项目,添加一个.cpp文件,粘贴测试代码

    #include <boost/regex.hpp>
    #include <iostream>
    #include <string>
    
    int main()
    {
        std::string line;
        boost::regex pattern("[a-zA-Z_][a-zA-Z0-9_]*");
        boost::smatch matches;
        //按“^Z 回车”退出
        std::cin >> line;
        while (std::cin) {
            if (boost::regex_match(line, matches, pattern))
                std::cout << "有效的标识符" << "" << std::endl;
            else
                std::cout << "无效标识符" << std::endl;
            std::cin >> line;
        }    
    }

    右击项目,选择“属性 - C/C++ - 常规 - 附加包含目录”,添加boost根目录

    再次右击项目,选择“属性 - 链接器 - 常规 - 附加库目录”,添加编译下出来的为目录,注意区分平台的架构。在我的环境,x86架构就选择“d:oost159stagelib86”。

    编译运行,一切正常。

    x86下编译release版,有时会出现错误:“error LNK2026 模块对于 SAFESEH 映像是不安全的”

    解决方法:右击项目,选择“属性 - 链接器 - 常规 - 命令行”,敲入:“/SAFESEH:NO”,禁用SEH

    参考


    http://www.boost.org/doc/libs/1_59_0/more/getting_started/windows.html

  • 相关阅读:
    MySQL/MariaDB 版本选择
    Linux查看某个进程的磁盘IO读写情况 pidstat
    Oracle 11gR2 Database UNDO表空间使用率居高不下处理
    Linux十字病毒查杀处理
    MySQL字符集与校对
    点与线、线与线之间的位置关系
    [向量] 点积应用-两个向量夹角
    点与线的距离及垂足点
    unity 4.6.1脚本解析出错,没有激活的勾,方法顺序出错
    Error building Player: Exception: Could not start java
  • 原文地址:https://www.cnblogs.com/sqxy110/p/4881078.html
Copyright © 2020-2023  润新知