J'ai du code préexistant que j'essaye de compiler dans une bibliothèque NDK. Il y a simplement un #ifndef que je dois exécuter correctement, mais dans mon Android.mk, la variable que j'ai définie avec LOCAL_CFLAGS n'est pas reconnue. Il pense que c'est une option de ligne de commandePourquoi le compilateur NDK ne reconnaît-il pas une définition LOCAL_CFLAGS?
Quand je lance NDK-construire avec l'option NDK_LOG tout compile bien jusqu'à ce que je vois ceci:
[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
Je suis tout simplement essayer d'obtenir les éléments suivants d'être inclus dans compilation:
#ifndef WINONLY
#import <CoreGraphics/CGGeometry.h>
#endif
Android.mk est assez simple:
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)
Si je n'ajoute simplement pas cette ligne LOCAL_CFLAGS, le compilateur essaye de compiler ce code iOS, ce qui est évidemment un non-go.
Vous voulez probablement 'add_definitions'. À la fin, cela finit aussi sur la ligne de commande du compilateur, mais c'est un peu plus clair sur le plan sémantique. – MSalters
@ MSalters, merci pour l'aide. J'ai essayé le bc de Michael c'était le premier et ça a bien fonctionné. – Alyoshak