Как изменить встроенные пути C/C++, указывающие на удаленную установку android-ndk-r9?
Недавно я обновил свой NDK с android-ndk-r9 до android-ndk-r10 (точнее r10d). Eclipse - это 4.4 Luna (Luna Service Release 1 (4.4.1); идентификатор сборки: 20140925-1800). Eclipse полностью исправлен для его выпуска. Я обновил все плагины Eclipse (включая ADT), чтобы они были полностью исправлены. И я также изменил свой ANDROID_NDK_ROOT
в .bash_profile
указать на новый каталог NDK.
В разделе "Настройки Eclipse" → "Android" → "NDK" Eclipse показывает новый путь "android-ndk-r10" (я должен был установить его вручную).
В разделе "Свойства проекта" → "Общие сведения о C/C++" → "Пути и символы" Eclipse по-прежнему показывает старый путь android-ndk-r9.
Eclipse считает путь встроенным, а снятие флажка Показать встроенные значения приводит к исчезновению всех путей. Кроме того, кнопка Изменить... неактивна.
Я собрал следующие каталоги и не могу найти строку "android-ndk-r9":
- Моя рабочая область Eclipse
~/.eclipse
- Каталог проекта
~/Library
/Application/Eclipse
/etc
на машине OS X/Library
на машине OS X
Проект строит нормально. Плохая конфигурация просто создает сотни ошибок в списке на вкладке Проблемы. (Для дублирования вам нужно открыть файл на C или C++):
Откуда исходит настройка? И как мне это изменить?
Похоже, это связано с тем, как удалить автоматически обнаруженные пути после компиляции в Linux из проекта Eclipse CDT?, Но я не могу найти Параметры обнаружения → Очистить записи обнаружения (похоже, это функция Eclipse 3.x). То же самое для Eclipse CDT Неверный путь к проекту.
Похоже, что это отчет об ошибке Eclipse, охватывающий проблему: включение обнаружения пути не удаляет устаревшие пути при обновлении компилятора.
2 ответа
Откуда исходит настройка?
Похоже, информация хранится в проекте pathInfo
файл. Ниже представлен пример проекта JNI под названием AndroidPrng.
$ cat /Users/jww/Eclipse/.metadata/.plugins/com.android.ide.eclipse.ndk/AndroidPrng.pathInfo
t,1421045575000
i,/opt/android-ndk-r9/sources/cxx-stl/stlport/stlport
i,/usr/local/cryptopp/android-armeabi/include
i,/opt/android-ndk-r9/sources/cxx-stl/system/include
i,/usr/local/cryptopp/android-armeabi/include/cryptopp
i,jni
i,/opt/android-ndk-r9/platforms/android-14/arch-arm/usr/include
i,/usr/local/cryptopp/android-x86/include
i,/usr/local/cryptopp/android-x86/include/cryptopp
i,/opt/android-ndk-r9/platforms/android-14/arch-x86/usr/include
i,/usr/local/cryptopp/android-mips/include
i,/usr/local/cryptopp/android-mips/include/cryptopp
i,/usr/local/cryptopp/android-armeabi-v7a/include
i,/usr/local/cryptopp/android-armeabi-v7a/include/cryptopp
i,/opt/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.6/include
i,/opt/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.6/include-fixed
i,/opt/android-ndk-r9/platforms/android-14/arch-mips/usr/include
d,__STDC__,1
d,__INT64_MAX__,9223372036854775807LL
d,__LDBL_HAS_QUIET_NAN__,1
d,__WINT_TYPE__,unsigned int
d,__ORDER_LITTLE_ENDIAN__,1234
d,__DEC64_MAX_EXP__,385
d,__UINT_LEAST32_TYPE__,unsigned int
d,__UINT_FAST64_TYPE__,long long unsigned int
d,__GXX_WEAK__,1
...
Я нашел следующие каталоги... "Мое рабочее пространство Eclipse, ~/.eclipse"...
Здесь было две проблемы. Во-первых, проект расположен на моем рабочем столе, а не в каталоге рабочей области. Во-вторых, 100 записей в файлах журнала в org.eclipse.cdt.ui
заглушил записи 15 записей для com.android.ide.eclipse.ndk
,
Итак, перед тем как выполнить grep, выполните:
rm Users/jww/Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/*.log
Это даст управляемые результаты grep.
И как мне это изменить?
Упражнение оставлено читателю.
Вы можете редактировать вручную; или вы можете удалить его, и Eclipse создаст его заново с новыми путями, связанными с NDK.
OP, вероятно, уже понял это, но добавил это здесь только для дальнейшего использования.
Eclipse (в настоящее время) имеет проблемы с версией r10d (см. Соответствующее обсуждение в /questions/3614762/kompilyatsiya-oshibki-hello-jni-v-eclipse-tolko-pri-otkryitii-fajla-hello-jnic-v-eclipse/3614764#3614764). Во-первых, если это возможно, следует выполнить откат к более ранней версии Android NDK (например, r10c работает нормально), а затем заставить Eclipse указать на недавно установленную версию NDK: " Настройки" -> Android -> NDK -> " Расположение NDK". Чтобы позволить Eclipse зафиксировать эти изменения, проект должен быть удален из рабочей области, а затем добавлен обратно (по крайней мере, мне пришлось). После того, как проект будет повторно импортирован, вы должны увидеть обновленные пути NDK: Project -> Properties -> C / C++ General -> Paths and Symbols. Восстановление индекса C / C++ (Project -> C/C++ Index -> Rebuild) также не повредит:)