2013-05-03 28 views
6

我有一個ac源文件夾名稱爲「clib」,在那裏,我有一些例子文件,如1.h,1.c,2.h,2.c,3 .C,3.H進出側該文件夾我有4.H,4.C,4_jni.h,4_jni.c如何在android.mk文件中指定c頭文件

我們建設「所以」我創造了我android.mk像這樣

LOCAL_PATH := $(call my-dir) 
MY_PATH := $(LOCAL_PATH) 
include $(call all-subdir-makefiles) 
include $(CLEAR_VARS) 
LOCAL_PATH := $(MY_PATH) 
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog 
LOCAL_MODULE := clib 
TIME_SYNC_PATH := ../../../clib 
LOCAL_SRC_FILES := \ 
        4_jni.c \ 
        4.c  \ 
        $(TIME_SYNC_PATH)/1.c \ 
        $(TIME_SYNC_PATH)/2.c \ 
        $(TIME_SYNC_PATH)/3.c \ 
$(BUILD_SHARED_LIBRARY) 

這裏4.H包括1.H文件

所以我的真正的問題是,當我試圖建立.so文件它給了我一個錯誤一些這樣

fatal error: 1.h: No such file or directory

如果我刪除從4.H的升·小時,一切都正在建設很好,但我有一個大的C庫 用同一種文件夾結構,而一些.h文件中包含幾馬科斯定義....

所以請任何建議如何將.H這是不同的文件夾中..

回答

9

你需要指定一個LOCAL_C_INCLUDES位置。

這個變量保存着你的頭文件,如地點:

LOCAL_C_INCLUDES := $(LOCAL_PATH)/src/include/ 

當然你也可以指定多個位置:

LOCAL_C_INCLUDES := $(LOCAL_PATH)/src/include/ 
LOCAL_C_INCLUDES += $(LOCAL_PATH)/project2/src/include/ 

注意,當這個變量是由ndk-build效用評估,其值被認爲是相對於$(LOCAL_PATH),因此在給出LOCAL_C_INCLUDES中的路徑時需要使用$(LOCAL_PATH)

+1

感謝您的回答,LOCAL_C_INCLUDES:= $(LOCAL_PATH)/(.h文件的路徑) – Naruto 2013-05-03 13:43:04