zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    node.js 安装后怎么打开 node.js 命令框
    thinkPHP5 where多条件查询
    网站title中的图标
    第一次写博客
    Solution to copy paste not working in Remote Desktop
    The operation could not be completed. (Microsoft.Dynamics.BusinessConnectorNet)
    The package failed to load due to error 0xC0011008
    VS2013常用快捷键
    微软Dynamics AX的三层架构
    怎样在TFS(Team Foundation Server)中链接团队项目
  • 原文地址:https://www.cnblogs.com/sqxy110/p/4881078.html
Copyright © 2011-2022 走看看