2011-01-13 4 views
5

मेरे पास कुछ * .cpp स्रोत फ़ाइलें हैं और कुछ * .s एआरएम असेंबलर फ़ाइलें मैं अपने एंड्रॉइड.एमके फ़ाइल में इकट्ठा करना और लिंक करना चाहता हूं (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. 

"सामान्य" मेकफ़ाइल में मुझे नियम में "as" का उपयोग करके इकट्ठा करना होगा। एंड्रॉइड.एमके फाइलों में यह कैसे किया जाता है?

/किम

उत्तर

5

यह शर्मनाक है लेकिन समस्या यह है कि * फ़ाइलों जहां एक सबफ़ोल्डर में स्थित .S था। "लक्ष्य बनाने का कोई नियम नहीं" त्रुटि इस मामले में एक बहुत ही खराब त्रुटि विवरण है।

/किम

+0

शर्मिंदगी पसीना नहीं आता। हम सभी समय-समय पर ऐसी चीजें करते हैं। – wallyk

0

संकेत: परिवर्तन प्रत्यय:

ln -fs %.s %.S.arm 
संबंधित मुद्दे

 संबंधित मुद्दे