c++使用boost安裝時的配置引數
下載boost庫,然後下載bjam.exe,放在boost庫的安裝目錄下,因為需要用到boost-build.jam,所以不能隨便放置。
然後你就可以進入控制檯去輸入指令了:
bjam --show-libraries 可以看見需要編譯的庫的名稱
然後就可以開始編譯你想要的庫了,下面是典型的格式
F:/sdk/boost>bjam --toolset=msvc-8.0 --with-date_time --with-thread
--link=static --threading=multi --runtime-link=shared debug stage
為了方便,你還可以這樣:
F:/sdk/boost>bjam --with-date_time --build-type=complete --toolset=msvc-8.0 stage
注意,--build-type=complete表示生成debug release static shared的各種版本
還有一個非常需要注意的地方,我在一次編譯的時候遇見過很變態的問題,由於安裝了VS2008,所以我想用VC9來編譯,結果VC9的設定似乎與環境變數衝突,在開啟命令列工具的時候會提示:此時不應有:<此處為系統的所有環境變數>。這個奇怪的問題很可能是由於環境變數裡的路徑過長或包含不該有的符號而導致的,但奇怪的是,VS2005並沒有這個衝突問題。所以,這時候如果要編譯boost的話只有兩條路走:1、搞定VS2008的衝突,重灌環境變數里路徑過長的程式。2、用VS2005的命令列工具去編譯。順帶一提的是,這時候最好不要用系統中的cmd,而是在開始->程式->VS2005->工具->命令提示裡執行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 | 顯示需要編譯的庫名稱 |