2013-11-03 30 views
2

我試圖通過ndk構建libiconv。我從來沒有使用make文件之前,所以我學習,我去用這個建議作爲一個起點:NDK和libiconv

https://groups.google.com/forum/#!msg/android-ndk/AS1nkxnk6m4/EQm09hD1tigJ

這是我的Android.mk:

LOCAL_PATH:= $(call my-dir) 
include $(CLEAR_VARS) 

LOCAL_CLFAGS := \ 
    -Wno-multichar \ 
    -D_ANDROID \ 
    -DLIBDIR="c" \ 
    -DBUILDING_LIBICONV \ 
    -DIN_LIBRARY \ 

LOCAL_SRC_FILES := \ 
    lib/iconv.c \ 
    lib/relocatable.c \ 
    libcharset/lib/localcharset.c 

LOCAL_C_INCLUDES := \ 
    $(LOCAL_PATH)/include/ \ 
    $(LOCAL_PATH)/lib/ \ 
    $(LOCAL_PATH)/libcharset/include/ \ 

LOCAL_MODULE := libiconv 

include $(BUILD_STATIC_LIBRARY) 

問題我得到的是編譯時沒有定義。 LIBDIR是第一個問題,因爲它到達localcharset.c

#ifndef LIBDIR 
# include "configmake.h" 
#endif 

localcharset.c: In function 'get_charset_aliases': 
localcharset.c:136:15: error: 'LIBDIR' undeclared (first use in this function) 
localcharset.c:136:15: note: each undeclared identifier is reported only once 

,並不能找到configmake.h。我繞過這個問題,並遇到更多定義相關的問題。基本上沒有任何標誌被定義。任何人都知道我做錯了什麼,或者爲什麼它可能沒有定義?

回答

2

引號需要轉義。我在文件中找不到這個。

-DLIBDIR = \「c \」

+1

這是因爲雙引號被shell識別並刪除。或者,您可以用單引號'-DLIBDIR ='「c」''來包裝它(有關更多詳細信息,請參閱http://stackoverflow.com/a/14030713/1688185)。 – deltheil