2013-06-12 313 views
0

我有一個庫說libX.a我創建一個庫myLib2.ai想要靜態鏈接libX.a與myLib2.a 問題是當我使用myLib2.a它投訴要求libX .a但是我希望libX.a成爲myLib2.a的一部分,以便我可以直接使用myLib2.a靜態鏈接庫

我已經嘗試生成myLib2.a併成功完成此操作,但是當我嘗試使用它時我得到錯誤。 你可以請建議這是可能的嗎?如果可能的話,我們如何使用makefile來實現這一點。

感謝和問候,

羅希特

+0

你的意思是你要這兩個庫結合起來,形成一個庫?或者你想鏈接兩個庫(也可能是其他對象)來形成一個可執行文件? 'myLib2.a'使用'libX.a'的元素嗎? – Beta

+0

我想鏈接兩個庫來創建一個庫。 – Rohit

回答

1

我想這兩個庫鏈接,讓一個庫。

你不想鏈接這兩個庫;你想結合他們。配方是here

0

libX.a(使用ar -x)中提取目標文件,然後將它們添加到myLib2.a(使用ar -r)。

在生成文件:

CONTENTS := $(filter %.o,$(shell ar -t libX.a)) 

libMy2.a: libX.a 
    ar -x libX.a 
    ar -r [email protected] $(CONTENTS) 
    rm $(CONTENTS)