Android NDK: нет правила, чтобы сделать цель

Я пытаюсь создать простое приложение для 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/ivan/Documents/workspace/TestNDK/obj/local/armeabi/objs/myNDK/native.o’. Стоп.

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

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

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

‘LOCAL_PATH: = $ (вызов my-dir) ____’

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

Надеюсь, что это помогает кому-то другому.

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

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

Другая проблема, которую я обнаружил, вызывает эту ошибку:

 LOCAL_SRC_FILES := native.c 

а также

 LOCAL_MODULE := native 

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

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

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

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

  • Вызов java-метода из c ++ в Android
  • Что такое Log API для вызова программы Android JNI?
  • Как воспроизводить несколько видеофайлов одновременно в одном макете бок о бок в другом представлении на Android
  • NDK - Как использовать сгенерированную библиотеку .so в другом проекте
  • Android: как программно найти имя версии Android?
  • SQLite с Android NDK
  • Как настроить NDK с плагином Android Gradle 0.7
  • Получить имена функций из стека вызовов
  • Запуск автономной библиотеки на Android L. Ошибка: поддерживаются только независимые исполняемые файлы (PIE)
  • Как создать исполняемый файл для оболочки Android
  • Файл записи NDK для Android
  • Interesting Posts

    Как назначить номера мониторов в Windows 7

    VMWare: этот хост не поддерживает VT. Невозможно воспроизвести 64-битную VM из-за отсутствия флага VT

    ошибка LNK2019: нерешенный внешний символ _WinMain @ 16, указанный в функции ___tmainCRTStartup

    Использование прокси в Spring AOP

    html5 Websocket с SSL

    Не удается загрузить исправленную версию пакета обновления для Windows Media (проблема синхронизации iCloud / Outlook)

    Инструменты управления проектами, такие как BaseCamp, которые интегрируются с SalesForce?

    Почему некоторые команды не отображаются, когда вы вводите «help» в cmd.exe?

    Как запустить несколько .BAT-файлов в файле .BAT

    Как восстановить поврежденный файл Excel

    Можно ли отключить кэширование записи на запоминающем устройстве USB на Mac OS X?

    Добавить новое поле в каждый документ в коллекции MongoDB

    Изменить цвет границы в TextBox C #

    Как я могу извлечь букву диска для нового подключенного диска в байте?

    Split java.util.Date за два h: поля inputText, представляющие час и минуту с f: convertDateTime

    Давайте будем гением компьютера.