[英]Why does bcp calculate such a large dependency list for Boost program_options?
我正在編寫一個使用boost/program_options
來處理命令行選項的小程序。 現在我想將我的代碼分發給一般未安裝Boost的系統。 所以我使用了bcp
實用程序。 我嘗試了來自program_options教程中來自Boost的示例,名為example/first.cpp
:
bcp --scan --boost=/users2/xxx/boost_1_45_0 ~/prova/first.cpp dest
它創建一個目錄dest
包含大量的.hpp
和.cpp
文件。 我想這就是我需要的,而不是更多。 是對的嗎? 因為:
du -hs dest
37M dest
不是37M太多了嗎? 例如,我可以使用Python和test_optparse.py
做同樣的事情,只有61KB。
難道我做錯了什么? 關鍵是我的源程序只有4MB; 我不能添加37MB的第三方東西!
Boost.Documentation對此主題的解釋比我提供的更多。 最為顯着地 :
應該注意的是,實際上bcp可以產生一個相當“胖”的依賴列表,原因包括:
[...]
- 當您包含標頭時,
bcp
不知道您正在使用什么編譯器,因此它遵循所有可能的預處理器路徑。 如果您正在使用應用程序分發Boost的子集,那么這就是您希望發生的一般情況。與大多數人的期望相比,上面的最后一點可以導致找到的標題數量大幅增加。 例如,bcp為boost / shared_ptr.hpp找到274個頭依賴項:通過在報告模式下運行bcp,我們可以看到為什么所有這些頭都被發現為依賴項
我建議你嘗試bcp --report
並檢查包含每個文件的原因,看看是否真的有必要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.