我正在移植应用程序,现有的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"

最佳答案

C预处理程序完成后的代码如下所示:

system_wide = system_path(/scard/.app)


这是因为ETC_GITATTRIBUTES实际上是由/scard/.ap替换的。因此,您需要执行以下操作:

-DETC_GITATTRIBUTES="/scard/.app"

10-07 19:15