2012-04-16 73 views
0

我有一堆C文件,擴展名爲.c.h。我想用Android NDK來編譯這些文件。當我只用一個文件進行嘗試時,NDK工作得很好,但是當我嘗試在包含此主文件的C文件中包含其他文件時,出現錯誤。我錯過了什麼?這是我的Android.mk文件:使用android編譯C文件時未定義的引用錯誤ndk

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_LDLIBS := -llog 

LOCAL_MODULE := ndksetupdemo 
LOCAL_SRC_FILES := mymain_c_file.c 
LOCAL_C_INCLUDES := includes 
include $(BUILD_SHARED_LIBRARY) 

我應該包含更多內容嗎?

回答

0

看來你只能鏈接到日誌庫(LOCAL_LDLIBS := -llog)。如果您引用的功能未在任何包含的頭文件和您的mymain_c_file.c中定義,您將收到未定義的參考錯誤。您需要找出需要鏈接的其他庫,並在LOCAL_LDLIBS中列出它們。

如果函數是在其他.c文件中定義的,則需要將它們添加到LOCAL_SRC_FILES變量中。

+0

我應該做這樣的LOCAL_SRC_FILES:= mymain_c_file.c,secondfile.c – James 2012-04-16 05:01:16

+0

我不熟悉Android的格式,但我會嘗試。 – Attila 2012-04-16 05:12:08

+1

用空格分隔文件,而不是逗號。它是標準的GNU makefile格式(Android.mk文件實際上被用作輸入來編寫程序)。 – 2012-04-16 08:25:00

相關問題