сделать ограничение исходного файла файла (Android ndk) - PullRequest
2 голосов
/ 03 апреля 2012

Я хочу собрать свой проект Android с помощью ndk, поэтому я создал свой 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.

но когда я уменьшил исходный файл (любой исходный файл), я не получил эту ошибку! но мой проект так и не был собран, потому что необходимые исходные файлы не собраны

1 Ответ

6 голосов
/ 03 апреля 2012

Что означает эта ошибка, так это то, что (a) есть строка, начинающаяся с символа TAB, и (b) это не какой-либо другой тип строки, о котором знает make (например, присвоение переменной и т. Д.)

В этом случае make предполагает, что строка предназначена для того, чтобы быть частью рецепта правила, но перед ним нет правила (без цели).

Проблема в том, что ваша строка:

                   objb/json.cpp\ 

имеет пробел после обратной косой черты.Из-за этого обратная косая черта не выходит за пределы новой строки, и поэтому make не считает, что следующая строка является частью назначения переменной.Поскольку он начинается с TAB ...

В make-файлах крайне важно убедиться, что у вас нет лишних конечных пробелов.Многие современные редакторы имеют режимы, которые показывают это: включите их при редактировании make-файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...