Android.mk - 如何组装和链接ARM汇编程序文件

时间:2011-01-13 14:48:58

标签: android gcc assembly android-ndk

我有一些* .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.

在“普通”makefile中,我必须在规则中使用“as”进行汇编。它是如何在Android.mk文件中完成的?

/ Kim

2 个答案:

答案 0 :(得分:5)

这很令人尴尬,但问题是位于子文件夹中的* .s文件。在这种情况下,“没有规则制作目标”错误是一个非常糟糕的错误描述。

/ Kim

答案 1 :(得分:0)

提示:更改后缀:

ln -fs %.s %.S.arm