本站首页    管理页面    写新日志    退出


«September 2025»
123456
78910111213
14151617181920
21222324252627
282930


公告

戒除浮躁,读好书,交益友


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:邢红瑞的blog
日志总数:523
评论数量:1142
留言数量:0
访问次数:9706418
建立时间:2004年12月20日




[c++]vc8编译boost 
原创空间,  软件技术,  电脑与网络

邢红瑞 发表于 2007/10/19 18:14:49

最近我自己上vc6很不争气,很多以前正常编译的东西,也可以正常编译,就是不正常运行,只好使用vc8。在vc8上编译boost被气得半死,编译Boost::regex库时失败,提示C4819错误,记得 VC7.1可以把Boost::regex库编译出来。boost的源码肯定有问题,源代码肯定有错,而且是语法错误, 让我对整个库的正确性都失去信心了,发布库的人有没有测试啊。。。开源项目带来的问题一般要比它能解决的问题要多。另外也说一句,C++更高版本(VC6以上)的应用,C++正在走火入魔中,编译器玩得过火,和当年的borland一样,bc++3.1的工程,bc4.5编译不过去,大家没有时间等bc++5.0出来,很多人去用vc4了。据说直接打开regex_trailts_defaults.cpp,把所有/*?/都替换删除,就可以了,但是他的源码 ,我干吗要修改。新的boost 版本boost_1_34_1据说可以,还提供了Foreach Library 用于简化对一个序列中的所有元素进行迭代。Xpressive Library 提供了更高阶的正则表达式支持。此库融合了 boost.regex 和 Spirit Parser Framework 的优点。以 C++ 表达式来编写正则表达式,好处是可以在编译期获悉语法的合法性,而且以这种方式表达的正则表达式可以互相引用,不像原先的 boost.regex, 只能在运行时进行语法检查和各种处理。编译regex库从开始菜单打开visual studio 2005 command prompt运行 cd D:\boost_1_34_1\boost_1_34_1\libs\regex\build输入 d:运行 namke vc8.mak然后一切ok,开始使用。编译boost大多数库进入visual studio 2005 command promptcd D:\boost_1_34_1\boost_1_34_1\tools\jam运行  build_dist.bat 不是build.bat,生成bjam.exe,没有zip,无法生成boost-jam-3.1.14-1-ntx86.zip,不过不影响使用。将D:\boost_1_34_1\boost_1_34_1\tools\jam\src\bin.ntx86\bjam.exe复制到D:\boost_1_34_1\boost_1_34_1下修改user-config.jam (D:\boost_1_34_1\boost_1_34_1\tools\build\v2\user-config.jam) 的MSVC configuration相应的加入using msvc : 8.0 : : <compileflags>/wd4819 <compileflags>/D_CRT_SECURE_NO_DEPRECATE <compileflags>/D_SCL_SECURE_NO_DEPRECATE <compileflags>/D_SECURE_SCL=0 ;_CRT_SECURE_NO_DEPRECATE和_SCL_SECURE_NO_DEPRECATE用于关闭safe code代码警告,    _SECURE_SCL用于控制是否用safe code对STL边界进行检查。C4819 : 代码文件中有cp936无法表示的字符,不影响编译,只要加上/wd4819 /D_CRT_SECURE_NO_DEPRECATE就可以不显示这两个错误。或者修改boost.build来抑制这两个错误的显示 boost.build分为v1和v2两个版本v1:修改$(BOOST_ROOT)/tools/build/v1/vc-8_0-tools.jam将 flags vc - 8_0 C ++ FLAGS :  / Zc:forScope ; 改为 flags vc - 8_0 C ++ FLAGS :  / Zc:forScope  / wd4819  / D_CRT_SECURE_NO_DEPRECATE ; v2:cvs版本修改$(BOOST_ROOT)/tools/build/v2/tools/msvc.jam在 #  8.0  adds some more options  一行的下方加上 flags msvc.compile CFLAGS $(condition) :  / wd4819  / D_CRT_SECURE_NO_DEPRECATE ;   boost 1.33.1版本将    #  8.0  deprecates some of the options     if   !  [ MATCH  ^ ([ 67 ]. * ) : $(version) ]     {        flags msvc.compile CFLAGS $(condition) /< optimization > speed :  / O2 ;        flags msvc.compile CFLAGS $(condition) /< optimization > space :  / O1 ;        flags msvc.link.dll MANIFEST :  " mt -manifest  "  ;        flags msvc.link.dll OUTPUTRESOURCE :  " -outputresource: "  ;    } 改为:    #  8.0  deprecates some of the options     if   !  [ MATCH  ^ ([ 67 ]. * ) : $(version) ]     {        flags msvc.compile CFLAGS $(condition) :  / wd4819  / D_CRT_SECURE_NO_DEPRECATE ;         flags msvc.compile CFLAGS $(condition) /< optimization > speed :  / O2 ;        flags msvc.compile CFLAGS $(condition) /< optimization > space :  / O1 ;        flags msvc.link.dll MANIFEST :  " mt -manifest  "  ;        flags msvc.link.dll OUTPUTRESOURCE :  " -outputresource: "  ;    }编译boostvisual studio 2005 command prompt执行D:\boost_1_34_1\boost_1_34_1\bjam.exe设定环境Tools -> Options -> Projects and Solutions -> VC++ Directories在Library files加上D:\boost_1_34_1\boost_1_34_1\bin.v2\libs在Include files加上D:\boost_1_34_1\boost_1_34_1\bin.v2\include


阅读全文(4298) | 回复(1) | 编辑 | 精华
 


回复:vc8编译boost
原创空间,  软件技术,  电脑与网络

Gdj(游客)发表评论于2010/11/3 13:50:24

编译boost库要一万年


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.547 second(s), page refreshed 144774922 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号