Windows下编译Boost并配置CodeBlocks和VisualStudio

发布于:2021-09-21 18:42:31

?



Windows下编译Boost并配置CodeBlocks和VisualStudio

Table of Contents

1 Must Know Before Installation2 编译参数含义 3 根目录下的文件 4 Windows
4.1 首先编译bjam 4.2 利用GCC编译器编译并配置CodeBlocks 4.3 利用MSVC编译器编译并配置Visual Studio 20084.4 命令行下调用5 测试代码



1 Must Know Before Installation

Boost官网




2 编译参数含义

我在用GCC编译时用的命令是 bjam install ?toolset=gcc ?without-graph ?without-graph_parallel ?without-mpi ?without-serialization ?without-wave ?prefix="D:oost_1_47_0VC9" link=static runtime-link=shared runtime-link=static threading=multi debug release

    install/stage: install会生成包含头文件的include目录,stage表示只生成库(dll和lib)无Include目录(可以使用原本就有的booost_1_47目录下的boost目录)。我这里面用install命令,生成的include只有几十M不会占用太大空间。toolset编译器选项可以是gcc、msvc、borland……without表示不安装某些库(因为我在学*Python所以我这里安装了python库,安装Python库需要首先安装Python解释器,您如果不需要的话可以添加?with-python来取消安装python库)prefix/stagedir 前面使用install时用prefix,用stage时用stagedir,表示编译生成文件的路径,我这里是在D:oost_1_47下的GCC目录,您可以根据自己的偏好更好,同样配置C::B和VS时的也要相应地更改。build-dir 编译过程中间文件存放目录,默认是bjam目录下的bin.v2,等编译完成后便可删掉该文件(我用两个编译器编译后生成的中间文件有1G多)threading 一般是多线程所以multi(如果您不写多线程程序的话这里可以不用设置)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,本人一般就编这两种组合。debug/release 编译debug/release版本。一般都是程序的debug版本对应库的debug版本,所以两个都编译。




3 根目录下的文件

doc 里面是boost的官方帮助文档




4 Windows

去Boost官网下载,我下载的是1.47版本7z压缩版,大小约为40M,将解压后的文件放在D盘根目录下,现在得到的目录结构应该是这样的:D盘根目录下有boost_1_47文件夹,boost_1_47下包含有Boost、doc、status等文件夹。




4.1 首先编译bjam

打开DOS界面切入boost_1_47所有文件夹,执行命令bootstrap.bat,若成功则便可以看到boost_1_47文件夹下多出一个bjam.exe可执行文件。





4.2 利用GCC编译器编译并配置CodeBlocks

在boost_1_47目录下执行命令:


?


bjam install --toolset=gcc --without-graph --without-graph_parallel --without-mpi --without-serialization --without-wave --prefix="D:oost_1_47_0GCC" link=static runtime-link=shared runtime-link=static threading=multi debug release

之后经过大约半个小时的等待便可看到boost_1_47文件夹下多出GCC文件夹,GCC下有include(大小约为70M)和lib(150M左右)文件夹。

    Settings->Global Variables

    ?


    bjam install --toolset=msvc-9.0 --without-graph --without-graph_parallel --without-mpi --without-serialization --without-wave --prefix="D:oost_1_47_0VC9" link=static runtime-link=shared runtime-link=static threading=multi debug release

    之后便可看到boost_1_47文件夹下多出VC9文件夹,其中有include和lib目录。

      C/C++->General->Additional Include Directorires中添加"D:oost_1_47VC9includeoost-1_47"保证Precompiled Headers ->Create/Use Precompiled Header中为Not Using Precompiled HeadersLinker->Additional Library Directories中输入D:oost_1_47VC9lib





    4.4?命令行下调用

    写makefile:


    -I PathToInclude


    -L PathToLib


    -l NameOfTheLib


    例如:


    main.exe:main.cpp
    g++ -I"D:oost_1_47GCCincludeoost-1_47" -L"D:oost_1_47GCClib" main.cpp -o main.exe


    ?


    ?
    5 测试代码

    ?



    1 #include
    2 #include
    3 #include
    4 #include
    5 using namespace std;
    6 int main()
    7 {
    8
    9 using namespace boost::lambda;


    ?


    Contact Me With Mail Below, Good Luck





    Author: visaya fan


    Date: 2012-04-07 20:37:07


    HTML generated by org-mode 6.33x in emacs 23




    ?

相关推荐

最新更新

猜你喜欢