2009-01-13 38 views
44

我試圖建立Boost C++ Libraries過去兩個小時,並沒有任何結果停下來。由於我是C++的新手,我無法獲得正確的構建。我如何使用Visual Studio 2008正確構建它?樓宇升壓BCP

我需要使用BCP工具來提取庫的一個子集。所以我需要先建立BCP,對吧?這個怎麼做?當我試圖建立它,我得到了以下錯誤

致命錯誤LNK1104:無法打開文件 'libboost_filesystem-VC90-MT-GD-1_37.lib'。

哪裏可以得到上面給出的庫文件?

回答

34

首先,您需要在命令shell中具有正確的PATH,INCLUDE和LIB環境變量。爲此,調用與參數文件「vcvarsall.bat」(或類似):你必須建立的bjam

vcvarsall.bat x86 

下一頁(您也可以從加速網頁下載,但它幾乎一樣快)。轉至tools\jam\src文件夾中的升壓和類型:

build.bat 

應該產生一個包含bjam.exe的子文件夾bin.ntx86。爲了方便,請將其複製到Boost主文件夾。接下來,你可以建立bcp。進入tools\bcp文件夾,然後鍵入:早在加速主文件夾

..\..\bjam.exe --toolset=msvc 

然後你可以建立任何你希望的庫:

bjam toolset=msvc –-with-{library} 

其中{library}是建立圖書館之一。所有可構建的庫可以顯示:

bjam –-show-libraries 

還有很多bjam構建參數。與關鍵字的一些參數,你可以指定有:

variant=debug|release 
link=shared|static 
threading=multi|single 

一個例子是:

bjam toolset=msvc –-with-filesystem threading=multi variant=debug stage 

欲瞭解更多相關信息,請訪問Boost documentation pages

編輯:更新鏈接指向最近Boost文檔

編輯:更正選項--with- {}庫和--show-庫

+1

感謝您的出色答案!這對我幫助很大。 – 2009-09-08 04:57:32

+1

它是`--with- {library}`和`--show-libraries`。兩個' - ',而不是一個。 – KTC 2010-05-14 09:57:49

+0

謝謝KTC,文件說的是一樣的。我糾正了答案。 – vividos 2010-05-17 08:34:19

0

注意,你不需要建立自己的來自源代碼的Windows版本 - 您也可以從http://www.boostpro.com/download下載二進制版本,並跳過所有這些步驟。

(或者,至少,這是理論上的情況下 - 我還沒有嘗試過,我只是發現頁面,這一次,同時尋找預建的Linux版本)。

105

當前版本Boost(1.50.0)使用Boost.Build。建立BCP新的工作流程如下:

從根目錄升壓,類型:

bootstrap.bat 

然後,一旦Boost.Build已經建成,類型:

b2 tools/bcp 
2

我提取源:https://github.com/district10/cmake-bcp(您不需要配置BOOST,因爲所有源代碼都已包含在內)。

在Linux上,cmake + make建:

# cd source_dir 
mkdir build && cd build 
cmake .. 
make 

在Windows上:CMake的圖形用戶界面+ Visual Studio來構建。需要幫忙?見HOWTO: Win + CMake + Visual Studio 2010

我的可執行文件:


提示:如果您在使用Boost時遇到了Windows上的鏈接問題,請檢查boost/config/auto_link.hpp,你就會明白。要解決這個問題,你可以註釋掉整個文件。