Как добавить собственный MACRO при использовании NDK? - PullRequest
17 голосов
/ 26 октября 2010

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

Ответы [ 4 ]

49 голосов
/ 26 октября 2010

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

LOCAL_CFLAGS    := -DMYDEFINE

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

#ifdef MYDEFINE
// We build the project with this special macro
#else
// We build without setting the macro in the LOCAL_CFLAGS
#endif
1 голос
/ 08 мая 2017

Чтобы определить marcro:

LOCAL_CFLAGS += -DYOUR_MACRO

, чтобы определить макрос со значением:

LOCAL_CFLAGS += -DYOUR_MACRO='"string"'

или

LOCAL_CFLAGS += -DYOUR_MACRO=123

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

1 голос
/ 21 февраля 2014

Если вы говорите о MACRO-файлах макрофайлов Android, таких как

$ (call my-dir)

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

Руководство по сборке Gnu

Например:

reverse = $ (2) $ (1)

foo = $ (обратный вызов), a, b)

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

результаты:

ba

1 голос
/ 26 октября 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...