2012-09-11 30 views
0

我有這個在我jni/Android.mk文件:如何訪問Android NDK中的C標誌?

LOCAL_CFLAGS := -LANG=en 

但是當我運行該程序LANG不存在!有任何想法嗎?

+1

,我不知道有任何CFLAG LANG的,你大概是這個意思'LOCAL_CFLAGS:= -DLANG = en'(爲了有一個定義)? –

回答

2

使用-D選項,而不是:

LOCAL_CFLAGS:= -D LANG = EN

這等同於C#定義。然後使用LANG作爲值爲en的常數。請注意,它不是一個字符串「en」,它是一個不帶引號的標識符。所以下面的用法是罰款:

int en = 1, de = 2, es = 3; 

int CurrentLang = LANG; //Translates to CurrentLang = en; 

或者這樣:

#if LANG==en 
//English localization stuff... 
#endif 

雖然下面是不是:

char * CurrentLang = LANG; //Error: en is an unknown identifier. It's not a string. 
+0

謝謝,-D是我錯過的。此外,我正在使用提取字符串值的'stringify'宏。 '#define STRINGIFY(arg)#arg'後跟'#define STR_VALUE(arg)STRINGIFY(arg)'。最後是'#define K_LANG STR_VALUE(LANG)',它給了我一個值爲「en」的K_LANG。 – drhr

+1

'-D'和'LANG'之間是否容許有空格?我習慣看到'-DLANG = en'。 –

+1

無論哪種方式工程IIRC。 –