Android NDK:变量问题

时间:2013-06-23 15:56:09

标签: c android-ndk

我正在移植一个应用程序,现有的MakeFile有以下内容......

ETC_GITATTRIBUTES = $(sysconfdir)/gitattributes
ETC_GITATTRIBUTES_SQ = $(subst ','\'',$(ETC_GITATTRIBUTES))
EXTRA_CPPFLAGS = \
    -DETC_GITATTRIBUTES='"$(ETC_GITATTRIBUTES_SQ)"'

所以我尝试用......重新创建它。

LOCAL_CFLAGS := -DNO_GETTEXT -DSHA1_HEADER="openssl/sha.h" -DETC_GITATTRIBUTES=/scard/.app

这两个代码的代码都是......

system_wide = system_path(ETC_GITATTRIBUTES)

但是第二个给了我以下错误......

./src/attr.c:476:30: error: expected expression before '/' token

如果我像这样硬编码......

system_wide = system_path("/sdcard/.app");

这很好用。如何在Android.mk中正确声明我的变量?

更新

我也试过了......

LOCAL_CFLAGS := -DNO_GETTEXT -DSHA1_HEADER="openssl/sha.h" -DETC_GITATTRIBUTES="/scard/.app"

2 个答案:

答案 0 :(得分:0)

C-Preprocessor完成后的代码如下所示:

system_wide = system_path(/scard/.app)

这是因为ETC_GITATTRIBUTES实际上被/scard/.ap取代了。所以你需要这样做:

-DETC_GITATTRIBUTES="/scard/.app"

答案 1 :(得分:0)

之前的回答是“接近”,但你显然需要逃避报价......

LOCAL_CFLAGS := -DNO_GETTEXT -DSHA1_HEADER="openssl/sha.h" -DETC_GITATTRIBUTES=\"/scard/.app\"