У меня есть уже существующий код, который я пытаюсь скомпилировать в библиотеку NDK. Есть просто #ifndef, который мне нужно выполнить правильно, но в моем Android.mk переменная, которую я определил с помощью LOCAL_CFLAGS, не распознается. Он думает, что это опция командной строки
Когда я запускаю ndk-build с параметром NDK_LOG, все компилируется нормально, пока я не вижу это:
[armeabi-v7a] Compile++ thumb: NDKImageProcessor <= NDKImageProcessor.cpp
arm-linux-androideabi-g++: error: unrecognized command line option '-WINONLY=1'
make: *** [obj/local/armeabi-v7a/objs/NDKImageProcessor/NDKImageProcessor.o] Error 1
Я просто пытаюсь получить следующее от включения в компиляцию:
#ifndef WINONLY
#import <CoreGraphics/CGGeometry.h>
#endif
Android.mk довольно прост:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := NDKImageProcessor
LOCAL_SRC_FILES := NDKImageProcessor.cpp
LOCAL_SRC_FILES += ../../../../SharedSrc/Image.cpp
LOCAL_LDLIBS := -llog
LOCAL_CFLAGS := -WINONLY=1
include $(BUILD_SHARED_LIBRARY)
Если я просто не добавлю эту строку LOCAL_CFLAGS, компилятор попытается скомпилировать этот код iOS, что, очевидно, невозможно.
add_definitions
. В конце концов, это также оказывается в командной строке компилятора, но семантически немного яснее. - person MSalters   schedule 10.09.2015