zoukankan      html  css  js  c++  java
  • Boost的使用相关

    Boost的部分编译

    下载的是boost 1.5版本

    首先用vs2010命令提示工具定位到boost1.5目录

    ./bootstrap.bat 

    执行脚本生成bjam.exe

    再用命令提示符工具输入:bjam --toolset=msvc-10.0 --with-date_time stage

    将在bootstrap.bat 的同目录下的stage/lib 下生成date_time的各种lib

    命令参考:

     
    --build-dir=<builddir> 编译的临时文件会放在builddir里(这样比较好管理,编译完就可以把它删除了)
    --stagedir=<stagedir> 存放编译后库文件的路径,默认是stage
    --build-type=complete 编译所有版本,不然只会编译一小部分版本(确切地说是相当于:variant=release, threading=multi;link=shared|static;runtime-link=shared)
    variant=debug|release 决定编译什么版本(Debug or Release?)
    link=static|shared 决定使用静态库还是动态库。
    threading=single|multi 决定使用单线程还是多线程库。
    runtime-link=static|shared 决定是静态还是动态链接C/C++标准库。
    --with-<library> 只编译指定的库,如输入--with-regex就只编译regex库了。
    --show-libraries 显示需要编译的库名称

     

    生成的lib名称的含义:

    libboost_regex-vc100-sgdp-1_46_1.lib。

    前面是库名称,vc100表示编译器,最后面是版本号。下面来解释一下中间那些字符的含义:

    版本号中标记的含义

    表示的含义

    s

    静态库版本

    gd

    调试版本

    p

    使用STLport作为STL实现的版本,

       

     

     关于使用stlport编译:http://hi.baidu.com/seuwind7/blog/item/79782fc8f0b1f3e953664f40.html

    打开E:\boost_1_5\tools\build\v2下的user-config.jam

    第74行去掉注释修改为:    using stlport : 5.2.1 :  E:/STLport_5_2_1/stlport :  E:/STLport_5_2_1/lib ;

    (注意看文件开头的说明:冒号和封号的左右两边必须要有空格,Windows下的路径要使用/或者\\)

    为使修改的配置配置生效,重新运行bootstrap.bat编译出bjam.exe

     

    编译thread库与使用

    我使用的命令是:

       bjam  stdlib=stlport  --toolset=msvc-10.0  --with-thread --stagedir=MYLIB --build-type=complete

    还需要编译thread库依赖的date_time库:

     bjam  stdlib=stlport  --toolset=msvc-10.0  --with-date_time--stagedir=MYLIB --build-type=complete

    STLport在Debug模式使用时,要定义__STL_DEBUG

    STLport与Boost一起在Debug模式下使用时,要在编译器定义预处理器: _STLP_DEBUG

    STLport与MFC一起使用的时候,要定义_STLP_USE_MFC

     参考:http://dearymz.blog.163.com/blog/static/20565742009221452985/

     直接下载编译好的BOOST

     http://www.boostpro.com/

     64-bit的下载对应的64位的boost库,32-bit的对应32位的

    在visual studo 配置管理器中要选择对应的 win32 或者是 x64

    使用错的话程序编译是会无法解析BOOST的lib的 

    取消BOOST的自动链接功能

    BOOST默认是采用静态链接的,只需要在项目中指定库的头文件目录,BOOST就会自动链接需要的库

    但是在设计一个类库的时候,如果在类库的实现中使用了BOOST,BOOST默认是不会链接到类库中的,当应用使用该类库的时候依然会提示缺少BOOST的lib

    这时应该在类库中取消BOOST的自动链接功能,再手动添加需要的lib

    取消方法是预定义这个宏:

     BOOST_ALL_NO_LIB

  • 相关阅读:
    今天下午去了佛山梁园——广东四大名园之一
    我眼中的Web2.0
    《花眼》观后感
    Implement SOAP services with the Zend Framework
    js 捕捉右键事件
    Zend Framework 第九节数据库操作学习总结
    PHP :time(),date(),mktime()日期与时间函数库{经常会忘却掉}
    zend_soap 实现 web service 用户验证
    php中DOMDocument简单用法(XML创建、添加、删除、修改)
    jquery 判断浏览器方法
  • 原文地址:https://www.cnblogs.com/lihuixian001/p/2612568.html
Copyright © 2011-2022 走看看