zoukankan      html  css  js  c++  java
  • boost library usage

    1. download the boost library from the offical website.

    2. Unzip the file

        For windows, use 7zip for .7z file or use zip for .zip file.

        For ubuntu/linux/mac os x, use command: tar xjf boost_1_xx_x.tar.bz2 -f boost_1_xx_x  or tar zxf boost_1_xx_x.tar.gz -f boost_1_xx_x

    3. Create the bjam/bj2, run the command by the script will create bjam and bj2. both two files are the same to build the libraries.

        For windows, run the "bootstrap.bat".

        For ubuntu/linux/max os x, run the "./bootstrap.sh",

    4. Build the library.

        For visual studio, please use the command line tool provided by the vs. For example, for visual studio 2010,

        mkdir msvc

        ./bjam --toolset=msvc-10.0 --build-type=complete --with-filesystem --stagedir=msvc --disable-filesystem2

        For mingw/cybwin on windows, please make sure the compile binaries for mingw, gcc, could be foudn in command line. that means the environment variables contains the path for mingw.

        mkdir mingw

       ./bjam --toolset=gcc --build-type=complete --with-filesystem --stagedir=mingw --disable-filesystem2

       For ubunt/linux/mac os x's gcc, you should use the layout flag to named the libraries with version of boost.

       mkdir gcc

       ./bjam --toolset=gcc --build-type=complete --with-filesystem --stagedir=gcc --disable-filesystem2 --layout=versioned

       For mac os x's darwin

       ./bjam --toolset=darwin --build-type=complete --with-filesystem --stagedir=darwin --disable-filesystem2

    Note:

       ./bjam --help

       ./bjam --show-libraries

    5. Compile and link

        Create a file to use the file system or other libraries.

        include the boost/filesystem.hpp

        There are two main ways to link to libraries:

    1. You can specify the full path to each library:

      g++ main.cpp -o main -I/home/rogerluo/boost_1_49_0/ /home/user/boost_1_49_0/gcc/lib/libboost_filesystem.so /home/user/boost_1_49_0/gcc/lib/libboost_system.so
      
    2. You can separately specify a directory to search (with -Ldirectory) and a library name to search for (with-llibrary, dropping the filename's leadinglib and trailingsuffix (.a in this case):

      g++ main.cpp -o main -I/home/user/boost_1_49_0/ -L/home/rogerluo/boost_1_49_0/gcc/lib -lboost_system -lboost_filesystem
      

        both these two ways are to dynamically link to libraries, if you want to link statically the libraries,  for linking directly the files,

                 g++ main.cpp -o main -I/home/rogerluo/boost_1_49_0/ /home/user/boost_1_49_0/gcc/lib/libboost_filesystem.a /home/user/boost_1_49_0/gcc/lib/libboost_system.a 

         on ubuntu/linix system, (.so) is dynamic library, (.a) is static library.

         For linking the file statically in the second way, declare the -static to make the linker to know using statically linking.

                 g++ main.cpp -o main -I/home/user/boost_1_49_0/ -L/home/user/boost_1_49_0/gcc/lib -lboost_system -lboost_filesystem -static

    Note:

    Using the second way to link libraries,

    For visual studio on window, change the linker setting: Additional library directories: $(BOOST_DIR)\msvc\lib\

    For mingw on windows(using codeblock), settings->compiler and debuger, choose a compiler and under the "Linkder settings" add "libboost_system-mgw47-1_49" and "libboost_filesystem-mgw47-1_49", if you want to statically link to library, input "-static" into the "Link options".


    make sure the LD_LIBRARY_PATH can contain path of boost library, modify the .profile under the your home directory, put this script at the end of the file.

    export LD_LIBRARY_PATH=/home/user/boost_1_49_0/gcc/lib:$LD_LIBRARY_PATH
    




        

       



  • 相关阅读:
    【总结】Centos中,Kerberos安装
    Go语言mgo
    Go语言mgo
    理解 Serenity,Part-1:深度抽象
    ZCash零知识证明
    零知识证明(Zero-Knowledge Proof)原理详解:非交互式证明实现自动验证防止作假
    tf.shape(x)、x.shape、x.get_shape()函数解析(最清晰的解释)
    Java生成(m.n)之间的随机数
    tf.cond()函数解析(最清晰的解释)
    OpenStack Blazar 架构解析与功能实践
  • 原文地址:https://www.cnblogs.com/rogerroddick/p/2846718.html
Copyright © 2011-2022 走看看