Как добавить пользовательский 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