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方式不行。

參見:
http://shaobin0604.iteye.com/blog/1170266
http://blog.csdn.net/lizhiguo0532/article/details/7219349.net

相關文章
相關標籤/搜索