首先我声明一下,其实这里的FAQ所给出的解答,都不是我说的,而是最近接触boost的时候一名前辈指点的,所以版权属于
他的,呵呵。
Q: boost 1.34.0 在 VC8下工作有哪些问题?
A: boost 1.34.0在VC8下使用它自带的STL编译出的"Safe"代码速度很慢;它的安全的C函数,boost也不支持。同时由于code page,在enable_if.hpp编译的时候会大量出现warning;同时,最严重的bug还是typeof在vc8下不能正常工作,而cvs中head版本是可以的。
Q:VC8平台下如何配置bjam的编译?
A:在$(boost)/tools/build/v2下找到 user-config.jam,在config msvc里面添加这一行:
using msvc : 8.0 : : <compileflags>/wd4819 <compileflags>/D_CRT_SECURE_NO_DEPRECATE <compileflags>/D_SCL_SECURE_NO_DEPRECATE <compileflags>/D_SECURE_SCL=0 ;
然后执行编译过程
Q:cvs head一定是可以使用的吗?
A:不是这样的。因为boost开发的人大多数都是在gnu下完成的,因此提交的代码不一定能正常的工作在VC++的环境下。尽管boost尽可能的按照标准来开发,但是通常也会应用到一些编译器技巧来完成特定的任务。
Q:为什么我的typeof在VC8下不能使用?
A:因为typeof可能依赖于已知的编译器的bugs。release 1.34.0中的typeof是不能在VC8下工作的。如果想获得可以使用的版本,请使用cvs将head分支的对应代码check out。
Q:为什么使用bjam define不能将编译选项传递到编译器中?
A:在boost的Mail List里面,这已经被认为是一个bug。不仅仅是define选项,cxxflags,cflags都存在同样的问题。但是奇怪的是,其它features却能准确的起作用。
Q:boost 1.34.0 还有哪些问题?
A:最明显的问题,就是iostream仍然使用了1.33的版本。而cvs中已经有对应的、经过测试的iostream。很难有什么理由能让我们认为,是由于1.34的问题而roll back到1.33。因此这很可能是在merge的时候出的差错。
Q:boost的未来版本可能有什么变化?
A:可能在接下来的几周内,boost将会发布1.34.1。希望新的版本能够修正现有的问题。1.35中,asio和gil可能会被加入,这使得boost库能够有一个不小的变化。
Q:如何知道boost接纳了哪些目前还不在boost release中的库?
A:http://www.boost.org/more/formal_review_schedule.html
Q:为什么说boost 1.34.0是最糟糕的boost?
A:难道还不够糟糕吗?