Как добавить пользовательский MACRO при использовании NDK?

Мне нужны некоторые пользовательские макросы в моих проектах NDK однако у меня нет идеального, как добавить, и я не нашел ответов Может ли кто-нибудь помочь? Большое спасибо!

Ответы

Ответ 1

Если вы хотите добавить специальное определение при компиляции кода NDK (jni), добавьте в свой Android.mk следующее:

LOCAL_CFLAGS    := -DMYDEFINE

Это определит макрос MYDEFINE в коде c/С++. Вот пример

#ifdef MYDEFINE
// We build the project with this special macro
#else
// We build without setting the macro in the LOCAL_CFLAGS
#endif

Ответ 2

Если вы правильно поняли, вам нужно посмотреть, как работает C Preprocessor.

Есть ли у вас опыт написания C/С++-программ? Прежде всего, вы должны быть очень разборчивы в отношении того, какие части вашего приложения вы пишете в собственном коде. Кроме того, вам нужно иметь в виду, что собственный код будет вести себя совершенно иначе, когда речь заходит о распределении памяти и т.д., Поэтому это действительно не место для догадок.

Потратьте некоторое время на знакомство с C/С++, спроектируйте свое приложение с умом, чтобы детали, которые вы хотите записать в собственном коде, четко определены и что это не увеличивает вероятность сбоя вашего приложения. Я предполагаю, что большинство проектов могут обойтись без части собственного приложения, поэтому, если вы используете его и не знаете точно, что вы делаете, вы должны действительно повторить, правильно ли это делать или нет.

Ответ 3

Чтобы определить маркро:

LOCAL_CFLAGS += -DYOUR_MACRO

для определения макроса со значением:

LOCAL_CFLAGS += -DYOUR_MACRO='"string"'

или

LOCAL_CFLAGS += -DYOUR_MACRO=123

лично, я предлагаю использовать + = вместо: =, чтобы избежать LOCAL_CFLAGS, был перезаписан.

Ответ 4

Если вы говорите о макросах MAC файла для Android, например

$(вызов my-dir)

Это точно так же, как синтаксис make файла GNU

Руководство по make файлу Gnu

Например:

reverse = $(2) $(1)

foo = $(вызов reverse, a, b)

$(предупреждение $(foo))

результаты:

b a