2011-01-13 1 views
5

Ich habe einige * CPP-Quelldateien und einige * .s ARM-Assembler Dateien, die ich in meiner Android.mk-Datei (durch Ausführen von NDK-Build-Skript montieren und Link will).Android.mk - Wie montieren und Link ARM-Assembler Dateien

Meine Android.mk Datei sieht wie folgt aus:

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) 

Leider ist die * .s-Datei nicht erkannt wird. NDK-build sagt:

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 einer „normalen“ Make-Datei würde ich durch die Verwendung zusammen hat „wie“ in der Regel. Wie wird es in den Android.mk Dateien gemacht?

/Kim

Antwort

5

Das ist peinlich, aber das Problem war, dass die * .s Dateien, in denen sich in einem Unterordner. Der Fehler "Keine Regel, um Ziel zu machen" ist in diesem Fall eine sehr schlechte Fehlerbeschreibung.

/Kim

+0

Sie die Verlegenheit nicht schwitzen. Wir machen alle solche Dinge von Zeit zu Zeit. – wallyk

0

Hinweis: Änderung Suffixe:

ln -fs %.s %.S.arm 
Verwandte Themen