2011-01-13 21 views
5

Ho alcuni file sorgente * .cpp e alcuni file assembler ARM * .s che voglio assemblare e collegare nel mio file Android.mk (eseguendo script ndk-build).Android.mk - Come assemblare e collegare i file assembler ARM

file di mio Android.mk si presenta così:

LOCAL_PATH:= $(call my-dir) 
include $(CLEAR_VARS) 
LOCAL_ARM_MODE := arm 
LOCAL_MODULE := libTestJNI 
LOCAL_SRC_FILES := Test.cpp TestAS_gas4.s 
LOCAL_CFLAGS := -DHAVE_CONFIG_H -DFPM_ARM -ffast-math -O3 -DOPT_ARM 
LOCAL_LDLIBS += -llog 
include $(BUILD_SHARED_LIBRARY) 

Purtroppo il file * .s non viene riconosciuto. ndk-build dice:

Gdbserver  : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver 
Gdbsetup  : libs/armeabi/gdb.setup 
make: *** No rule to make target `/cygdrive/c/projects/TestAS_gas4.s', needed by `/cygdrive/c/projects/obj/local/armeabi/objs-debug/libTestJNI/TestAS_gas4.o'. Stop. 

In un makefile "normale" dovrei assemblare usando "come" in una regola. Come è fatto nei file di Android.mk?

/Kim

risposta

5

Questo è imbarazzante, ma il problema era che l'* .S file in cui si trova in una sottocartella. L'errore "Nessuna regola da rendere target" è una descrizione dell'errore molto scarsa in questo caso.

/Kim

+0

non sudare l'imbarazzo. Tutti noi facciamo queste cose di tanto in tanto. – wallyk

0

suggerimento: suffissi cambiamento:

ln -fs %.s %.S.arm 
Problemi correlati