Makefile 设置文件源文件限制(android ndk)

Makefile 设置文件源文件限制(android ndk),makefile,android-ndk,Makefile,Android Ndk,我想用ndk构建我的android项目,所以我创建了如下make文件: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := game_logic LOCAL_SRC_FILES := AppDelegate.cpp\ MainMenuScene.cpp\ ArtTestScene.cpp\ A

我想用ndk构建我的android项目,所以我创建了如下make文件:

    LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := game_logic

LOCAL_SRC_FILES := AppDelegate.cpp\
                   MainMenuScene.cpp\
                   ArtTestScene.cpp\
                   AppDelegate.cpp\
                   objb/Config.cpp\
                   objb/ExtendedString.cpp\
                   objb/json.cpp\ 
                   objb/TimeStamper.cpp \
                   Objects/Actor.cpp \
                   Objects/BackGround.cpp \


LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../cocos2dx \
                    $(LOCAL_PATH)/../../cocos2dx/platform \
                    $(LOCAL_PATH)/../../cocos2dx/include \
                    $(LOCAL_PATH)/../../CocosDenshion/include \
                    $(LOCAL_PATH)/../../cocos2dx/lua_support \
                    objb \

LOCAL_LDLIBS := -L$(call host-path, $(LOCAL_PATH)/../android/libs/$(TARGET_ARCH_ABI)) \
                -lcocos2d -lcocosdenshion \
                -L$(call host-path, $(LOCAL_PATH)/../../cocos2dx/platform/third_party/android/libraries/$(TARGET_ARCH_ABI)) -lcurl

include $(BUILD_SHARED_LIBRARY)
问题是我得到了这个错误:

jni/../../Classes/Android.mk:12: *** recipe commences before first target.  Stop.

但是当我减少源文件(任何源文件)时,我没有得到这个错误!但我的项目从未生成,因为未生成所需的源文件。此错误意味着(a)有一行以制表符开头,并且(b)make不知道任何其他类型的行(例如变量赋值等)

在这种情况下,make假设该行是规则配方的一部分,但它前面没有规则(没有目标)

问题在于,您的产品线:

                   objb/json.cpp\ 
在反斜杠后有一个空格。因此,反斜杠不会转义换行符,因此make不认为下一行是变量赋值的一部分。因为它以一个标签开始


在makefiles中,确保没有任何无关的尾随空格是至关重要的。许多现代编辑器都有这样的模式:在编辑makefile时启用它们。

包含了两个我们看不到的东西,它们的名称甚至没有在这个makefile(或makefile片段)中定义。这里没有命令,所以问题出在您
包含的一个文件中(或者makefile的内容可能比您向我们展示的更多)。如果我们能看到
Android.mk
(至少第12行),我们可能会有机会。我包含的源代码是Android.mk