2011-03-15 32 views
7

我需要提交一個任務,但我只想包含boost實際使用的頭文件(我使用了boost :: shared_ptr和boost :: function)。我嘗試手動這樣做,但我錯過了一些頭文件,每次我去添加它們,事實證明我錯過了更多。有沒有一個簡單的方法來找出我真正需要的標題?獲取必要的頭文件提升

感謝

回答

13

bcp命令此製成:

NAME

bcp - extract subsets of Boost 

概要

bcp --list [options] module-list 
    bcp [options] module-list output-path 
    bcp --report [options] module-list html-file 
    bcp --help 

說明

Copies all the files, including dependencies, found in module-list to 
    output-path. output-path must be an existing path. 

但是你可能會驚訝地發現這些Boost頭文件的相互依賴性如何。

+0

我需要建立bcp嗎?我只能在我的boost目錄 – Megatron 2011-03-15 02:31:24

+0

Dunno中找到它的源文件。我的Debian/Ubuntu機器使用'libboost1.42-dev'軟件包。 – 2011-03-15 02:51:33

+1

最近必須在Windows上執行此操作 - 進入tools \ bcp文件夾並輸入「.. \ .. \ bjam.exe --toolset = msvc」 – dubnde 2011-03-15 10:47:02

1

有一個叫bcp來完成這一工具 - 複製出加速的需要和部分而已。

1

實際上你的問題還有另一種解決方案:預處理器。

您使用的編譯器應該有一個開關,用於在gcc和clang上運行預處理器:-E。鑑於此,您可以預處理您包含的兩個文件,並將此運行的結果存儲到您自己的頭文件(每個文件)中。

添加標題保護,包括已經預處理的標題代替常規的增強標題,你就完成了。

當然,兩個頭文件之間可能會有一些重複,差異工具可能會幫助您發現它,並將它分解到另一個常見頭文件中......但是對於任務我一定不會打擾。

你也可以考慮告訴你的老師,因爲他不要求你提供你編譯的標準庫頭,他不應該要求你使用的boost頭。