• [原]VS2008安装boost的lib库


    1,解压boost的安装文件,例如:D:oost_1_41_0,运行oost_1_41_0 oolsjam目录下的build_dist.bat,大概需要4分钟,编译后的bjam.exe文件放在目录oost_1_41_0 oolsjamstagebin.ntx86下,将其拷贝到根目录oost_1_41_0下。此时oost_1_41_0 oolsjamstage目录及其子目录即可删除。
     
    2,安装ICU(用来支持unicode字符匹配):下载地址http://sourceforge.net/projects/icu/。解压至D:icu目录下,打开ICU源代码目录下的sourceallinoneallinone.sln(VS2005版本)。然后,选择release,Rebuild Solution,大概需要5分钟,编译后,根目录生成了bin和lib目录,然后就可以删除source目录了(因为编译后有100多兆,节省空间吧)
     
    3,cmd中运行命令:bjam stage -sICU_PATH="D:icu" --with-regex --stagedir="F:oost_lib" link=static runtime-link=shared threading=multi debug release (大概需要7分钟)。因为我们只要regex的lib,所以使用--with参数,要同时编译其他的组件可以再加几个,例如:--with-regex --with-thread stagedir指定的是编译后存放lib的目录。其他的参数我摘找其他大侠的介绍:
     
    stage/install:stage表示只生成库(dll和lib),install还会生成包含头文件的include目录。本人推荐使用stage,因为install生成的这个include目录实际就是boost安装包解压缩后的boost目录(E:SDKoost_1_39_0oost,只比include目录多几个非hpp文件,都很小),所以可以直接使用,而且不同的IDE都可以使用同一套头文件,这样既节省编译时间,也节省硬盘空间。

    toolset:指定编译器,可选的如borland、gcc、msvc(VC6)、msvc-9.0(VS2008)等。

    without/with:选择不编译/编译哪些库。因为python、mpi等库我都用不着,所以排除之。另外,wave、graph、math、regex、test、program_options、serialization、signals这几个库编出的静态lib都非常大,所以不需要的也可以without掉。这可以根据各人需要选择,默认是全部编译。但是需要注意,如果选择编译python的话,是需要python语言支持的,应该到python官方主页http://www.python.org/下载安装。

    stagedir/prefix:stage时使用stagedir,install时使用prefix,表示编译生成文件的路径。推荐给不同的IDE指定不同的目录,如VS2008对应的是E:SDKoost_1_39_0invc9,VC6对应的是E:SDKoost_1_39_0invc6,否则都生成到一个目录下面,难以管理。如果使用了install参数,那么还将生成头文件目录,vc9对应的就是E:SDKoost_1_39_0invc9includeoost-1_39oost,vc6类似(光这路径都这样累赘,还是使用stage好)。

    build-dir:编译生成的中间文件的路径。这个本人这里没用到,默认就在根目录(E:SDKoost_1_39_0)下,目录名为bin.v2,等编译完成后可将这个目录全部删除(没用了),所以不需要去设置。

    link:生成动态链接库/静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用static方式。一般boost库可能都是以static方式编译,因为最终发布程序带着boost的dll感觉会比较累赘。

    runtime-link:动态/静态链接C/C++运行时库。同样有shared和static两种方式,这样runtime-link和link一共可以产生4种组合方式,各人可以根据自己的需要选择编译。一般link只选static的话,只需要编译2种组合即可,即link=static runtime-link=shared和link=static runtime-link=static。

    threading:单/多线程编译。一般都写多线程程序,当然要指定multi方式了;如果需要编写单线程程序,那么还需要编译单线程库,可以使用single方式。

    debug/release:编译debug/release版本。一般都是程序的debug版本对应库的debug版本,所以两个都编译。
     
    编译完成后,根目录下的、oost_1_41_0in.v2目录及其子目录即可删除。
     
    4,打开VS2008,tools ->options ->projects and solutions -> VC++ Directories -> show directories for,选择include files,然后添加目录D:oost_1_41_0。至此,以可以使用boost的大部分类库,若你有使用regex等需要额外再生成对应操作系统的动态库的组件,需在show directories for下拉框下选择library files,添加目录F:oost_lib(之前编译时输入的命令)
     
    测试代码:
     

        #include <boost/regex.hpp>
        #include <string>

        using namespace boost ;
        using namespace std ;

        int main(int argc, const char** argv)
        {
            regex reg("\d{3}([a-zA-Z]*)"); 
            string str="123"; 
            assert(regex_match(str,reg));
            return 0;
        }


    阅读(1735) | 评论(0) | 转发(0) |
    给主人留下些什么吧!~~
    评论热议
  • 相关阅读:
    Flink-v1.12官方网站翻译-P029-User-Defined Functions
    Flink-v1.12官方网站翻译-P028-Custom Serialization for Managed State
    Flink-v1.12官方网站翻译-P027-State Schema Evolution
    Flink-v1.12官方网站翻译-P026-State Backends
    Flink-v1.12官方网站翻译-P025-Queryable State Beta
    Flink-v1.12官方网站翻译-P024-Checkpointing
    Flink-v1.12官方网站翻译-P023-The Broadcast State Pattern
    Flink-v1.12官方网站翻译-P022-Working with State
    java笔记五——数组
    java笔记四——java基础知识(二)
  • 原文地址:https://www.cnblogs.com/black/p/5171974.html
Copyright © 2020-2023  润新知