Android NDK + Eclipse: нет такого файла или каталога

Я пытаюсь использовать Freetype с Android NDK + Eclipse, но когда включаю это в свой проект, у меня возникает ошибка:

#include <ft2build.h>
#include FT_FREETYPE_H

Сообщение об ошибке:

фатальная ошибка: ft2build.h: нет такого файла или каталога

Вот файл Android.mk в jni / freetype2:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := freetype
LOCAL_SRC_FILES := freetype/lib/libfreetype.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/freetype/include/freetype2 $(LOCAL_PATH)/include
include $(PREBUILT_STATIC_LIBRARY)

Вот файл Android.mk проекта (в папке jni):

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := CNSD_CPP
...
LOCAL_LDLIBS := -landroid -lGLESv2 -lEGL -llog
LOCAL_STATIC_LIBRARIES := freetype android_native_app_glue
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue)

И у меня есть этот заголовочный файл в каталоге:

jni/freetype2/freetype/include/freetype2

и когда я CTRL + щелкаю по нему, Eclipse показывает мне файл. Что я делаю неправильно?


@Alex: Я запустил ndk-build V = 1, и результат таков:

Не используйте оболочку cygwin для сборки с помощью инструментария NDK. Откройте обычную командную строку Windows и используйте вместо нее

#include <ft2build.h>
#include FT_FREETYPE_H
. Убедитесь, что все пути указаны в так называемом смешанном формате, например


person ngspkinga    schedule 19.07.2014    source источник
comment
Я обновил свой вопрос в соответствии с вашим ответом. Ошибка такая же. Кстати, мои файлы Android.mk в порядке? Я что-то от них не забыл?   -  person Alex Cohn    schedule 19.07.2014


Ответы (1)


Обновление: теперь я вижу, что

d:/Development/Projects/workspace/CNSD_CPP

пропал, отсутствует. Его следует размещать после BUILD_SHARED_LIBRARY и перед include-module.

include $(LOCAL_PATH)/freespace2/Android.mk

Попробуйте настроить ndk-build.cmd из командной строки и опубликовать журнал.

person Alex Cohn    schedule 19.07.2014
comment
Да, я пропустил это включение. :) Спасибо! Теперь у меня другая ошибка: libfreetype.a: member at n не является объектом ELF. Я прочитал, что мне следует проверить свой архивный файл с помощью ... / arm-linux-androideabi-nm, если это действительный файл android ar, но он говорит, что формат файла не распознается в каждом файле .o в нем. Конечно, это другая проблема, ваш ответ принят. :) Думаю, мне нужно выяснить правильную конфигурацию для кросс-компиляции freetype для Android. - person ngspkinga; 19.07.2014
comment
[armeabi] Скомпилируйте ++ thumb: CNSD_CPP ‹= Log.cpp d: /Development/Android/android-ndk-r9c/toolchains/arm-linux-androidabi-4.8/prebuilt/windows-x86_64/bin/arm-linux-androidabi-g++ -MMD -MP -MF D: / Development / Projects / workspace / CNSD_CPP // obj / local / armeabi / objs / CNSD_CPP / Log .od -fpic -ffunction-section -funwind-tables -fstack-protector -no-canonical- префиксы -march = armv5te -mtune = xscale -msoft-float -fno-exceptions -fno-rtti -mthumb -Os -g -DNDEBUG -fomit-frame-pointer -fno-strict-aliasing -finline-limit = 64 -Id: / Разработка / Android / android-ndk-r9c / sources / android / native_app_glue -Id: / Development / Android / android-ndk-r9c / sources / cxx-stl / gnu-libstdc ++ / 4.8 / include -Id: / Development / Android / android-ndk-r9c / sources /cxx-stl/gnu-libstdc++/4.8/libs/armeabi/include -Id: / Development / Android / android-ndk-r9c / sources / cxx-stl / gnu-libstdc ++ / 4.8 / include / backward -ID: / Development / Projects / workspace / CNSD_CPP // jni -DANDROID -Wa, - noexecstack -Wf ormat -Werror = format-security -std = c ++ 11 - Id: / Development / Android / android-ndk-r9c / platform / android-15 / arch-arm / usr / include -c D: /Development/Projects/workspace/CNSD_CPP//jni/Log.cpp -o D: / Разработка / Проекты / workpa ce / CNSD_CPP // obj / local / armeabi / objs / CNSD_CPP / Log.o [armeabi] Compile ++ thumb: CNSD_CPP ‹= Main.cpp d: / Development / Android / android-ndk-r9c / toolchains / arm-linux-androidabi-4.8 / prebuilt / windows-x86_64 / bin / arm-linux-androideabi-g ++ -MMD -MP -MF D: / Development / Projects / workspace / CNSD_CPP // obj / local / armeabi / objs / CNSD_CPP / Mai nod -fpic -ffunction-section -funwind-tables -fstack-protector -no-canonical-prefixes -march = armv5te -mtune = xscale -msoft-float -fno-exceptions -fno-rtti -mthumb -Os -g - DNDEBUG -fomit-frame-pointer -fno-strict-aliasing -finline-limit = 64 -Id: / Development / Android / android-ndk-r9c / sources / android / native_app_glue -Id: / Development / Android / android-ndk- r9c / sources / cxx-stl / gnu-libstdc ++ / 4.8 / include -Id: / Development / Android / android-ndk-r9c / source s / cxx-stl / gnu-libstdc ++ / 4.8 / libs / armeab i / include -Id: / Development / Android / android-ndk-r9c / sources / cxx-stl / gnu-libstdc ++ / 4.8 / include / backward -ID: / Development / Projects / workspace / CNSD_CPP // jni -DANDROID -Wa , - noexecstack -W format -Werror = format-security -std = c ++ 11 -Id: / Development / Android / android-ndk-r9c / platform / android-15 / arch-arm / usr / include -c D : /Development/Projects/workspace/CNSD_CPP//jni/Main.cpp -o D: / Development / Projects / works pace / CNSD_CPP // obj / local / armeabi / objs / CNSD_CPP / Main.o D: / Development / Projects /workspace/CNSD_CPP//jni/Main.cpp:3:22: фатальная ошибка: ft2build.h: нет такого файла или каталога #include ^ компиляция прекращена. make.exe: *** [D: /Development/Projects/workspace/CNSD_CPP//obj/local/armeabi/objs/CNSD_CPP/Main.o] Ошибка 1 - person ngspkinga; 20.07.2014