我正在嘗試構建一個合併兩個靜態庫的大靜態庫。在那一刻我使用的是「AR」命令,再使用「AR」提取物,例如,從「AA」和「BA」,然後重新組裝這些對象:如何提取包含重複目標文件的靜態庫?
$ ar x a.a
$ ar x b.a
$ ar r merged.a *.o
遺憾的是它不工作爲了我的目的,因爲aa在同一個名稱內部有不同的對象。 'ar'命令正在提取重複的對象,並用相同的名稱替換已提取的對象。即使使用相同的名稱,這些對象也具有不同的符號,所以我得到未定義的引用,因爲一些符號與替換的文件一起被遺漏。
我沒有訪問原始對象,已經嘗試過'ar xP'和'ar xv'以及很多'ar stuff'。有沒有人可以幫助我展示如何合併這些庫?
在此先感謝。
太棒了,我有同樣的問題,這個腳本解決了這個問題。 但我相信你應該寫'''content_descripter [48:58]'''而不是48:57。根據[Wikipedia](https://en.wikipedia.org/wiki/Ar_(Unix)),文件大小字段爲10個字節,而不是9個字節。 – 2016-08-01 04:49:32
此外,如果您處理.a文件格式的BSD變體(例如,在Mac上),文件名可以是正文部分的一部分,如[Wikipedia](https://en.wikipedia.org/wiki/Ar_(UNIX))。所以你也需要一個邏輯去除它。 – 2016-08-01 04:57:29