首先我聲明一下,其實(shí)這里的FAQ所給出的解答,都不是我說(shuō)的,而是最近接觸boost的時(shí)候一名前輩指點(diǎn)的,所以版權(quán)屬于
他的,呵呵。
Q: boost 1.34.0 在 VC8下工作有哪些問(wèn)題?
A: boost 1.34.0在VC8下使用它自帶的STL編譯出的"Safe"代碼速度很慢;它的安全的C函數(shù),boost也不支持。同時(shí)由于code page,在enable_if.hpp編譯的時(shí)候會(huì)大量出現(xiàn)warning;同時(shí),最嚴(yán)重的bug還是typeof在vc8下不能正常工作,而cvs中head版本是可以的。
Q:VC8平臺(tái)下如何配置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 ;
然后執(zhí)行編譯過(guò)程
Q:cvs head一定是可以使用的嗎?
A:不是這樣的。因?yàn)閎oost開發(fā)的人大多數(shù)都是在gnu下完成的,因此提交的代碼不一定能正常的工作在VC++的環(huán)境下。盡管boost盡可能的按照標(biāo)準(zhǔn)來(lái)開發(fā),但是通常也會(huì)應(yīng)用到一些編譯器技巧來(lái)完成特定的任務(wù)。
Q:為什么我的typeof在VC8下不能使用?
A:因?yàn)閠ypeof可能依賴于已知的編譯器的bugs。release 1.34.0中的typeof是不能在VC8下工作的。如果想獲得可以使用的版本,請(qǐng)使用cvs將head分支的對(duì)應(yīng)代碼check out。
Q:為什么使用bjam define不能將編譯選項(xiàng)傳遞到編譯器中?
A:在boost的Mail List里面,這已經(jīng)被認(rèn)為是一個(gè)bug。不僅僅是define選項(xiàng),cxxflags,cflags都存在同樣的問(wèn)題。但是奇怪的是,其它features卻能準(zhǔn)確的起作用。
Q:boost 1.34.0 還有哪些問(wèn)題?
A:最明顯的問(wèn)題,就是iostream仍然使用了1.33的版本。而cvs中已經(jīng)有對(duì)應(yīng)的、經(jīng)過(guò)測(cè)試的iostream。很難有什么理由能讓我們認(rèn)為,是由于1.34的問(wèn)題而roll back到1.33。因此這很可能是在merge的時(shí)候出的差錯(cuò)。
Q:boost的未來(lái)版本可能有什么變化?
A:可能在接下來(lái)的幾周內(nèi),boost將會(huì)發(fā)布1.34.1。希望新的版本能夠修正現(xiàn)有的問(wèn)題。1.35中,asio和gil可能會(huì)被加入,這使得boost庫(kù)能夠有一個(gè)不小的變化。
Q:如何知道boost接納了哪些目前還不在boost release中的庫(kù)?
A:http://www.boost.org/more/formal_review_schedule.html
Q:為什么說(shuō)boost 1.34.0是最糟糕的boost?
A:難道還不夠糟糕嗎?