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)

しかし、2番目のものは私に次のエラーを与えます...

./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 プリプロセッサが完了した後のコードは次のようになります。

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 に答える