簡體   English   中英

合並兩個C ++包

[英]Merging two C++ packages

我有兩個C ++包A和B,其中A依賴於B.我想通過讓A吞下B代碼的一小部分來打破這種依賴性,這樣B就可以完全拋棄了。

有沒有人有任何建議我如何能夠剖析包A以確切地找到類/功能等我需要從B引入?

編輯:我只是刪除了包B,然后(很多)循環編譯A,從B復制文件,相應地更新Makefile.am。 現在我很確定我的包裝A膨脹的東西多於所需的東西。 我如何找到A`代碼中從未在其中出現的可執行文件/庫中使用的部分?

我認為有三種可能的行動方式:

  1. 真正只導入所需內容:撤消你所做的,然后再做一次,但這次不要復制B中的整個文件,而只是復制編譯器告訴你的單個函數。

  2. 在您目前的情況下,讓一些工具為您分析代碼(請參閱查找免費的源代碼分析器(函數依賴樹)尋找免費的源代碼分析器(函數依賴樹) ),或使用所有A編寫大量代碼並運行代碼覆蓋率分析。

  3. 注釋掉從B復制的源中的函數(不在標題中)。 現在你的鏈接器會抱怨任何缺失的功能。 取消注釋這些,刪除其余部分,包括它們在標頭中的聲明。 這是第一種方法。

也許objdump會給你一些有用的信息。 在二進制文件(objdump -t)上使用它,它應該能夠顯示有關導入函數的一些有用信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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