0

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

2 回答 2

0

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

system_wide = system_path(/scard/.app)

这是因为ETC_GITATTRIBUTES从字面上替换为/scard/.ap. 所以你需要这样做:

-DETC_GITATTRIBUTES="/scard/.app"
于 2013-06-23T16:00:41.580 回答
0

以前的答案是“关闭”,但您显然需要转义引号......

LOCAL_CFLAGS := -DNO_GETTEXT -DSHA1_HEADER="openssl/sha.h" -DETC_GITATTRIBUTES=\"/scard/.app\"
于 2013-06-23T16:15:24.063 回答