登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

秒大刀 博客

好好学习 天天向上

 
 
 

日志

 
 
 
 

Boost 编译  

2009-03-02 13:45:02|  分类: C/C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

    以前曾多次尝试编译boost,均未果。虽在网上看到过很多怎么编译boost的指导,但大多都是抄来抄去,而且和现行版本已经相去甚远。可以说boost的编译曾一次又一次的打击了我幼小的心灵。

   下面的编译方法我是亲身实践得来的:

平台:VS2005 sp1

Boost1.38.0

Python2.5.4 (可选,若不安装python,则python相关的库将不会被编译)

下载解压后在boost-1.38.0目录下建立build.bat文件:

cd tools\jam\src\
call build.bat
cd ..\..\..\
tools\jam\src\bin.ntx86\bjam.exe --toolset=msvc-8.0 --prefix=.\stage 

     保存后运行,等若干长的时间。编译完成后,将会生成bin.v2目录和stage目录。bin.v2是编译生成文件的中间目录,stage是最终生成的dll和lib相应的目录,如果你硬盘不够大的话建议删除bin.v2,不过下次你再编译的时候还得等上和第一次一样长的时间。


2010-4-10

    boost中文文档可以在 http://code.google.com/p/boost-doc-zh/downloads/list 下载得到,感谢该翻译计划所有的参与人员和组织!


2010-4-20

  《boost官方手册》,多谢老廖分享。


2010-4-21

    对于大部分Boost应用来说,它是不用编译的,直接包含头文件就可使用。只有少部分需要编译成库文件,需要编译的库如下:date_time、filesystem、function_types、graph、iostreams、math、mpi、program_options、python、regex、serialization、signals、system、test、thread、wave。如果代码中用不到这部分需要编译的Boost库,完全可以不用花时间编译,直接包含头文件即可。

    bjam编译命令如下:

cd tools\jam\src\
call build.bat
cd ..\..\..\

一般常在Windows下开发,常用的是MD方式静态链接方式,则编译命令为:

tools\jam\src\bin.ntx86\bjam.exe --toolset=msvc-10.0 threading=multi runtime-link=shared link=static

bjam还有几个很有用的选项:

bjam参数
--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 显示需要编译的库名称

 更详细的编译选项请参考:http://www.cppprog.com/2009/0112/48.html 


2010-12-23
    boost-1.45.0的编译更为简单:
  • 源码解包
  • 通过Visual Studio命令提示进入boost所在目录
  • 运行“bootstrap.bat”,编译生成bjam.exe
  • 运行”bjam.exe --toolset=msvc-10.0 threading=multi runtime-link=shared link=static“进行boost编译

2011-10-9
    boost功能强大、内容丰富,但代码体积也相当大。要将boost源码悉数纳入自己的svn代码仓库,并不是一件愉快的事情。
    幸好svn华丽的支持svn:externals外部条目导入功能,可以将boost源码通过“http://svn.boost.org/svn/boost/tags/release/Boost_1_47_0 boost”轻松导入。如此,避免了将boost加入自己代码仓库所需的时间,避免了代码仓库的膨胀。
    想升级到新版的boost,只需修改externals property中的版本号,并将已经下好的boost目录switch到对应的分支即可。
  评论这张
 
阅读(8518)| 评论(2)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018