posts - 28, comments - 179, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

boost1.34.0编译日志

Posted on 2007-06-06 17:04 chemz 阅读(2148) 评论(11)  编辑 收藏 引用 所属分类: C++
                                boost1.34.0编译日志
    经历了将近一年半的时间boost终于发布了1.34.0版本(前版本1.33.1发布于2005/12),
其编译方法和原来的编译方法基本上是一致的,主要改变是bjam的toolset所提供的参数名称
的改变,而由于这个版本并没有提供任何文档说明不同的编译环境应该使用什麽样的toolset
名称,使用原有的名称是不能够正常编译的,同时为了使得regex库能够通过ICU库支持Unicode,
在编译上需要有一些特殊的选择。我在Visual Studio 2005 Pro + SP1环境下编译了该库,
为了避免走弯路所以将其编译的方法进行说明,以方便大家编译。
    由于boost是采用其自己的bjam工具通过命令行进行编译的,所以必须在Windows下开启
console窗口,同时必须将Visual Studio中C++目录下的环境vcvarsall.bat配置脚本运行一
遍,以设置好VC的编译器环境变量。
    1. 编译不带ICU支持的boost库
       此种情况下的boost库编译起来比较的简单,在准备好的console窗口中输入:
           bjam --without-python --toolset=msvc-8.0 stage
       就可以了,如果要安装的话则输入:
           bjam --without-python --toolset=msvc-8.0 install
           
    2. 编译具有ICU支持的boost库
       首先我们必须编译ICU库才能够编译boost库,在准备好的console窗口中输入:
           bjam -sICU_PATH=d:\ICU --without-python --toolset=msvc-8.0 stage
       就可以了,如果要安装的话则输入:
           bjam -sICU_PATH=d:\ICU --without-python --toolset=msvc-8.0 install
    通过上面的方法可以很正常完成boost各种需要版本的关系。
 
注:
    最近1.34.1也已经发布了,其编译方法完全相同。

Feedback

# re: boost1.34.0编译日志[未登录]  回复  更多评论   

2007-06-06 17:31 by pass86
我编译了一次1.33.1,只是复制了些头文件到我的目标我的文件架,没有生成。LIB文件,是怎么回事情呢,用的是。NET 2003选项,能够给我发个
。NET2003的编译明命令行吗,谢谢。
pass86@gmail.com

# re: boost1.34.0编译日志  回复  更多评论   

2007-06-06 17:53 by chemz
在Visual Studio.NET 2003下编译boost1.33.1的命令行:
bjam "-sTOOLS=vc-7_1" stage
就可以了,只是这个版本的regex库中有一个文件中包含了非法的注释字符串,会导致编译错误。
具体解决办法如下:
libs/regex/src/目录下的一个regex_traits_defaults.cpp文件中包含有ANSI编码无法包含的字符集,所以会导致编译的时候出现错误,要解决该问题可以将该文件用notepad.exe程序打开,将其中的/*?/字符串替换掉就可以了,对于VC8还要将config/compiler目录下的visualc.hpp文件中的第58行移动到71行的下面。

# re: boost1.34.0编译日志  回复  更多评论   

2007-06-06 22:17 by 空明流转
如果像你那么编译VC8下会由于Safe Code,编译和性能上都会很难看。
补充说明可以翻看我的blog关于boost 1340的问答。

# re: boost1.34.0编译日志  回复  更多评论   

2007-06-06 22:26 by pass86
我把/*?/去掉了,代会编译试试。

# re: boost1.34.0编译日志  回复  更多评论   

2007-06-07 09:07 by chemz
"空明流转"提到编译上由于Visual C++2005的Safe Code会产生很多的警告信息,不会对代码产生任何的影响,关掉这些警告可能会比较的顺眼,谢谢!

# re: boost1.34.0编译日志  回复  更多评论   

2007-06-07 12:37 by 空明流转
80下会有影响。80的stl很恶心的默认为safe code,速度要比全速的时候慢50%

# re: boost1.34.0编译日志  回复  更多评论   

2007-06-07 14:00 by pass86
bjam "sTOOLS=vc-7_1" --prefix=D:\Boost install
编译中无法找到windows.h

完成结果
...failed updateing 244 targets...
...skiped 228 targets...
...updated 1022 targets...

WHY?

LIB文件夹下有102个项目。

# re: boost1.34.0编译日志  回复  更多评论   

2007-06-07 14:03 by chemz
bjam "sTOOLS=vc-7_1" --prefix=D:\Boost install
你的命令写错了看到没有,仔细对比一下;
无法找到windows.h应该是VC的环境变量没有运行的原因

# re: boost1.34.0编译日志  回复  更多评论   

2007-06-07 16:36 by pass86
搞定,原来是我用的vsvars32.bat应该在一个控制台下完成,因为它只在当前控制台中设置的环境变量生效。
LIB下生成了216个项目,1.2G。

# re: boost1.34.0编译日志  回复  更多评论   

2007-06-07 16:45 by pass86
...updated 5279 targets...

# re: boost1.34.0编译日志  回复  更多评论   

2007-07-23 13:20 by pass86
1.34.0用MinGW编译貌似有问题,
为什么没有发发现boost_1_34_0\tools\build下有v1呢?

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理