Android.mk - Как собрать и связать файлы ассемблера ARM - PullRequest
5 голосов
/ 13 января 2011

У меня есть некоторые исходные файлы * .cpp и некоторые файлы ассемблера * .s ARM, которые я хочу собрать и связать в моем файле Android.mk (запустив скрипт ndk-build).

Мой Android.mkФайл выглядит так:

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)

К сожалению, файл * .s не распознается.ndk-build говорит:

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.

В «нормальном» make-файле мне придется собираться, используя «as» в правиле.Как это делается в файлах Android.mk?

/ Kim

Ответы [ 2 ]

5 голосов
/ 14 января 2011

Это смущает, но проблема была в том, что файлы * .s находились в подпапках.Ошибка «Нет правила для цели» в данном случае является очень плохим описанием ошибки.

/ Kim

0 голосов
/ 04 августа 2011

подсказка: изменить суффиксы:

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