簡體   English   中英

為什么bcp為Boost program_options計算這么大的依賴列表?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM