Android NDK: нет правил для создания цели - PullRequest
47 голосов
/ 05 июня 2011

Я пытаюсь создать простое приложение для Android, используя NDK. Вот содержимое моего Android.mk

LOCAL_PATH := $(call my-dir)  

include $(CLEAR_VARS)  

LOCAL_LDLIBS := -llog  

LOCAL_MODULE    := myNDK
LOCAL_SRC_FILES := native.c

include $(BUILD_SHARED_LIBRARY)

И когда я запускаю ndk-build, я получаю:

make: * Нет правил для цели '/native.c', needed by '/ Users / иван / Документы / рабочее пространство / TestNDK / объект / местные / armeabi / OBJS / myNDK / native.o. Стоп.

Так что проблема, очевидно, в том, что make ищет исходные файлы в корневом каталоге, и если я копирую native.c в свою корневую папку, все работает отлично.

Вопрос: что я должен указать в моем Android.mk, чтобы установить LOCAL_PATH для моей рабочей папки jni.

Ответы [ 4 ]

87 голосов
/ 05 июня 2011

ОК, я решил свою проблему, и причина была очень странной: проблема в первой строке

'LOCAL_PATH: = $ (позвоните в мою директорию) ____'

В конце было несколько пробелов (я заменил их на '_'). Если вы удалите их, все будет работать нормально.

Надеюсь, это поможет кому-то еще.

1 голос
/ 18 декабря 2016

Другая проблема, с которой я столкнулся, заключается в том, что

LOCAL_SRC_FILES := native.c

и

LOCAL_MODULE    := native

используют одно и то же имя.Я не уверен, почему это вызывает ошибку, так как код должен быть сгенерирован в разных местах, как native.o, native.od и native.Но, очевидно, это так.

Я узнал об этом, пытаясь скомпилировать hello.c в hello.Как только я изменил hello.c на main.c, все скомпилировалось правильно.

1 голос
/ 19 августа 2013

В Mac OS X с использованием android-ndk-r9 64 bit удалите пробелы из пути NDK.Это исправило правило Нет, чтобы сделать ошибку цели для меня

Не совсем ответом для ОП, но я думаю, что это может спасти других от напрасной траты времени.

0 голосов
/ 13 марта 2015

Если в файле Android.mk есть какая-либо синтаксическая ошибка, правила для создания целевой ошибки не будет.

У меня была такая же проблема.

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