2012-12-09 69 views
0

我需要從若干個目標文件中創建一個庫,其中包含LOCAL_SRC_FILES中包含的源文件,然後在構建最終庫時與其鏈接。Android.mk中的後編譯,預鏈接構建步驟

這是可能的,如果是的話 - 我該怎麼辦?

我用int的擴展變體替代了BUILD_SHARED_LIBRARY,但是兔子的洞太深了(即我還沒那麼絕望)。

我想這樣做的原因是因爲我將幾個小型圖書館合併爲一個並試圖將其整體構建。我知道將它們分成不同的模塊,這些模塊是用自己的Android.mk文件構建的,是一個更好的解決方案,但我的時間很短。

編輯:這個問題的前提是不再有效,因爲我已經忘記添加一些庫添加到Android.mk文件的源文件,並已只增加主庫的文件。同時,我將依賴關係的頭文件添加到LOCAL_C_INCLUDES,這樣他們就成爲鏈接時依賴關係,而不是像我期望的那樣編譯時。因此,我實際上並不需要在編譯和鏈接之間建立一個庫。

的改寫問題:

是否有可能,如果是,怎麼樣,自定義生成步驟添加到使用後編譯源文件,但之前將它們連接起來執行一個Android.mk文件一起進入最終的庫/可執行文件?

回答

0

您可以隨時將預編譯的對象或庫添加到鏈接命令中,例如,

LOCAL_LDLIBS += ../external/obj1.o /full/path/obj2.o /other/path/libOther.a 
+0

感謝您的提示,但這是我的錯誤。請參閱最新的問題。 – mcmlxxxvi

+1

那麼究竟是什麼問題呢?不是通過編寫'include $(BUILD_STATIC_LIBRARY)'創建一個靜態庫?爲什麼?也許你錯過的作品是你不需要每個庫目標的分離的** Android.mk **文件。 –

+0

問題是我是否以及如何在編譯和鏈接之間執行自定義步驟。現在我沒有任何真正的需要,我發現我的錯誤,這只是出於好奇。對於我以前的草率的改寫感到遺憾。 – mcmlxxxvi