我有一些预先存在的代码正在尝试编译到 NDK 库中。我需要正确执行一个简单的#ifndef,但在我的 Android.mk 中,我用 LOCAL_CFLAGS 定义的 var 无法识别。它认为这是一个命令行选项
当我使用 NDK_LOG 选项运行 ndk-build 时,它编译得很好,直到我看到:
[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 代码,这显然是不行的。