LOCAL_SHARED_LIBRARIES 與 LOCAL_LDLIBS,LOCAL_LDFLAGS的區別

LOCAL_LDLIBS :鏈接的庫不產生依賴關係,一般用於不需要重新編譯的庫,如庫不存在,則會報錯找不到。且貌似只能鏈接那些存在於系統目錄下本模塊需要連接的庫。如果某一個庫既有動態庫又有靜態庫,那麼在默認情況下是鏈接的動態庫而非靜態庫。

如:LOCAL_LDLIBS += -lm –lz –lc -lcutils –lutils –llog …

如果你的Android.mk文件中只有這麼一行,那麼將會採用動態鏈接。

 

 

LOCAL_SHARED_LIBRARIES 會生成依賴關係,當庫不存在時會去編譯這個庫。

 

 

LOCAL_LDFLAGS:這個編譯變量傳遞給鏈接器一個一些額外的參數,比如想傳遞而外的庫和庫路徑給ld,或者傳遞給ld linker的一些鏈接參數,-On,-EL{B}(大小端字節序),那麼就要加到這個上面,如:

LOCAL_LDFLAGS += -L$(LOCAL_PATH)/lib/ -lHWrecog –EB{EL} –O{n} …

或者直接加上絕對路徑庫的全名:

LOCAL_LDFLAGS += $(LOCAL_PATH)/lib/libHWrecog.a –EB{EL} –O{n}

 

 

注:如果是非系統的第三方庫,貌似只能用LOCAL_LDFLAGS方式,LOCAL_LDLIBS方式不行。

發佈了4 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章