VC下完全或部分編譯boost

2021-06-06 11:45:24 字數 994 閱讀 3734

二、完整編譯boost

1、編譯bjam

在控制台下面執行...\boost_1_33_1\tools\build\jam_src目錄下的build.bat,會在此目錄下生成檔案bin.ntx86\bjam.exe.

這裡存在一些問題。如果你用的編譯器不是vc8、vc安裝目錄不再c:\或者環境變數設定和build.bat不一致,會導致此編譯無法執行,比較穩妥地辦法是啟動vc的命令提示,在此環境下執行build.bat,然後生成bjam.exe。

三、編譯部分boost庫

boost大部分庫不需要編譯就可直接用,平台相關的庫需要編譯才能用。以vc8下編譯boost::thread為例子,此庫需要編譯才能用。

1、直接用bjam編譯boost::thread(動態庫)

執行:bjam "-stools=vc-8_0" --with-thread即可在...\boost_1_33_1\bin\boost\libs下生成boost::thread所需的動態庫和靜態庫,更多啟動引數檢視官方文件。

2、用vc編譯boost::thread(靜態庫)

先新建乙個win32\consol工程,例如boost.thread,去掉預處理頭選項並且選擇動態庫或靜態庫選賢,然後將...\boost_1_33_1\libs\thread\src下所需的檔案插入工程,此目錄下的mac不需要編譯。直接編譯即可。

有個問題,boost有複雜完整的編譯配置,可以檢視英文官方文件。在引用自己編譯的庫會有乙個提示找不到xx庫檔案,這個庫檔名與bjam編譯生成的檔名相同。解決辦法:用預處理巨集可以遮蔽boost預設設定。在boost.thread工程中加入預處理巨集boost_all_no_lib,另外在自己的工程中也同樣加入此預處理巨集即可。更多資料檢視英文官方文件。

3、用vc編譯boost::thread(動態庫)

新建win32\consol\dll\空專案,然後加入...\boost_1_33_1\libs\thread\src所需檔案。設定預處理巨集:boost_thread_build_dll.直接編譯。

交叉編譯部分boost庫

1 進入 work src packages boost 1 49 0目錄,執行 sudo bootstrap.s 通過執行sudo bootstrap.s show libraries 顯示所有的庫 2 修改 project config.jam 為以下內容 將 using gcc 修改為 usi...

VC6 0下編譯boost庫的regex

今天要用到正規表示式,用網上的方法,直接使用命令 nmake vc6.mak 提示 nmake 不是內部或外部命令,也不是可執行的程式 上網搜尋了一下,說執行命令 call c program files microsoft visual studio vc98 bin vcvars32.bat 重...

編譯 boost 的正規表示式部分

vc利用boost庫解析正規表示式 最近做 資料庫涉及到解析 sql語句,覺得最好的辦法是寫正規表示式解析,由於vc6沒有解析函式,自己寫又不甘心,後來從網上找到了boost庫,解決了這個問題.boost庫安裝比較麻煩,需要自己編譯原始檔,我整理了一下,如果僅僅需要做正規表示式,按下面的 敲就行了....