[英]Modifying a Compiled Static Library
戴上你的 c++ 忍者巫毒手套。
我們購買了第 3 方庫以用於我們的 iOS 應用程序。 該庫有兩個版本,我們稱它們為bull_frog_noises.a
和toad_frog_noises.a
。
該公司從未想過有人會想在一個應用程序中發出兩種青蛙的聲音,因此每個庫都提供相同的方法名稱:
MAKE_FROG_NOISE();
有沒有辦法重建或修改這些庫,以便它們都可以在不相互沖突的情況下使用? 這是理想的 state:
MAKE_BULL_FROG_NOISE();
MAKE_TOAD_FROG_NOISE();
您可以構建另一個 static 庫作為那些具有所需方法名稱的庫的包裝器,然后將包裝器庫包含在項目中。
像這樣:
1 - 創建一個名為 bull_frog_noises_wrapper.a 的新 static 庫項目。
2 - 包括 bull_frog_noises.a 作為這個新創建的庫的依賴項。
3 - 創建這樣的方法:
void MAKE_BULL_FROG_NOISE()
{
MAKE_FROG_NOISE();
}
4 - 對 toad_frog_noises.a 執行相同的操作,創建如下方法:
void MAKE_TOAD_FROG_NOISE()
{
MAKE_FROG_NOISE();
}
5 - 在您的項目中添加這些包裝器,您就完成了。
請注意您在主項目中使用的 header 文件,以免它們與內部庫發生沖突。
希望能幫助到你。
我會嘗試使用十六進制編輯器手動修改其中一個庫,以便將 MAKE_FROG_NOISE 的每個實例替換為 MAKE_TOAD_NOISE。 您必須非常小心才能僅進行一項更改。 您只能替換字節。 不要插入或刪除任何東西。 並且不要更改文件中的任何其他內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.