您的位置:首页 > 产品设计 > UI/UE

编译链接到Boost及Boost库命名规则

2008-07-18 09:17 351 查看
    前段时间用需要单独编译一些Boost库,本能的先搜了下,发现介绍的太少。也没点到我想要的重点,无奈看文档吧!写下在VC7下使用总结:如有错误,欢迎指正!:-)

Boost库的编译采用Boost_Build, 一个类似于CMake的跨平台编译Make自动生成工具(Bjam)。

1、首先配置Bjam(见Boost_Build文档);
2、全编译:切换到boost根目录,运行bjam;
      部分编译:切换到待编译库的目录下,运行bjam --toolset=msvc;(参数有很多,具体使用时见文档即可)

注意:一般boost预先编译的库有MD版和MDd版。库名称为mt,mt_gd,具体如下:

当你的应用要链接到Boost库时,需要看boost库lib下提供哪种编译模式下的库,来决定cl的编译参数;

下面简单介绍下Boost库命名规则:

mt:多线程运行库DLL版

g:调试版

d:指定待编译工程的目标版本为Debug

例子如下:

// 此库是链接到vc runtime 多线程动态库
libboost_signals-vc71-mt-1_35.lib

// 此库是链接到vc runtime 多线程动态调试库,且待编译的工程为debug
libboost_signals-vc71-mt-gd-1_35.lib

// 此库是链接到vc runtime 多线程动态调试库,且待编译的工程为release
libboost_signals-vc71-mt-g-1_35.lib

// 此库是链接到vc runtime 多线程静态调试库,且待编译的工程为debug
libboost_signals-vc71-mt-sgd-1_35.lib

// 此库是链接到vc runtime 多线程静态调试库,且待编译的工程为release
libboost_signals-vc71-mt-sg-1_35.lib

一般boost的预编译库包含下面两个版本
libboost_signals-vc71-mt-1_35.lib
libboost_signals-vc71-mt-gd-1_35.lib

对应分别的cl编译参数为:
cl ***.cpp -EHsc -MD
cl ***.cpp -EHsc -MDd -D"_DEBUG"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息