при компиляции freetype для android, не найден ft2build.h

72
27 февраля 2022, 20:40

Хочу скомпилировать игру для android на sdl2. Скачал с github freetype для android. Я создал в jni каталог Freetype2 и в него закинул include src и Android.mk. Вот Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
FREETYPE_SRC_PATH := 
LOCAL_MODULE := freetype2-static
LOCAL_CFLAGS := -DANDROID_NDK \
                -DFT2_BUILD_LIBRARY=1
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include_all \
                $(FREETYPE_SRC_PATH)include \
                $(FREETYPE_SRC_PATH)src
LOCAL_SRC_FILES := \
        $(FREETYPE_SRC_PATH)src/autofit/autofit.c \
        $(FREETYPE_SRC_PATH)src/base/basepic.c \
        $(FREETYPE_SRC_PATH)src/base/ftapi.c \
        $(FREETYPE_SRC_PATH)src/base/ftbase.c \
        $(FREETYPE_SRC_PATH)src/base/ftbbox.c \
        $(FREETYPE_SRC_PATH)src/base/ftbitmap.c \
        $(FREETYPE_SRC_PATH)src/base/ftdbgmem.c \
        $(FREETYPE_SRC_PATH)src/base/ftdebug.c \
        $(FREETYPE_SRC_PATH)src/base/ftglyph.c \
        $(FREETYPE_SRC_PATH)src/base/ftinit.c \
        $(FREETYPE_SRC_PATH)src/base/ftpic.c \
        $(FREETYPE_SRC_PATH)src/base/ftstroke.c \
        $(FREETYPE_SRC_PATH)src/base/ftsynth.c \
        $(FREETYPE_SRC_PATH)src/base/ftsystem.c \
        $(FREETYPE_SRC_PATH)src/cff/cff.c \
        $(FREETYPE_SRC_PATH)src/pshinter/pshinter.c \
        $(FREETYPE_SRC_PATH)src/psnames/psnames.c \
        $(FREETYPE_SRC_PATH)src/raster/raster.c \
        $(FREETYPE_SRC_PATH)src/sfnt/sfnt.c \
        $(FREETYPE_SRC_PATH)src/smooth/smooth.c \
        $(FREETYPE_SRC_PATH)src/truetype/truetype.c
LOCAL_LDLIBS := -ldl -llog
include $(BUILD_STATIC_LIBRARY)

пишет такую ошибку, когда я запускаю ./gradlew installDebug

  Error while executing process /home/cf/ndk/ndk-build with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=/home/cf/programs/SDL2-2.0.10/build/com.xverizex.sta/app/jni/Android.mk NDK_APPLICATION_MK=/home/cf/programs/SDL2-2.0.10/build/com.xverizex.sta/app/jni/Application.mk APP_ABI=x86_64 NDK_ALL_ABIS=x86_64 NDK_DEBUG=1 APP_PLATFORM=android-16 NDK_OUT=/home/cf/programs/SDL2-2.0.10/build/com.xverizex.sta/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=/home/cf/programs/SDL2-2.0.10/build/com.xverizex.sta/app/build/intermediates/ndkBuild/debug/lib APP_PLATFORM=android-16 /home/cf/programs/SDL2-2.0.10/build/com.xverizex.sta/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/libmain.so}
  Android NDK: WARNING:/home/cf/programs/SDL2-2.0.10/build/com.xverizex.sta/app/jni/Freetype2/Android.mk:freetype2-static: LOCAL_LDLIBS is always ignored for static libraries    
  [x86_64] Compile        : freetype2-static <= autofit.c
  /home/cf/programs/SDL2-2.0.10/build/com.xverizex.sta/app/jni/Freetype2/src/autofit/autofit.c:20:10: fatal error: 'ft2build.h' file not found
  #include <ft2build.h>
           ^~~~~~~~~~~~
  1 error generated.
  make: *** [/home/cf/ndk/build/core/build-binary.mk:476: /home/cf/programs/SDL2-2.0.10/build/com.xverizex.sta/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/freetype2-static/src/autofit/autofit.o] Error 1

но этот файл есть в include/. Я пробывал поменять его на "ft2build.h", но тоже самое, не видит этого файла.

Answer 1

Надо заменить на эту строку и тогда всё заработает.

LOCAL_C_INCLUDES := $(LOCAL_PATH)/include_all \
                $(LOCAL_PATH)/include \
                $(FREETYPE_SRC_PATH)src
READ ALSO
Существует ли способ удалить из multiset в c++ только один элемент с данным значение а не все?

Существует ли способ удалить из multiset в c++ только один элемент с данным значение а не все?

Функция erase(x) удаляет из multiset все элементы со значением x, есть ли способ или похожая структура данных, чтобы этого избежать и удалять только...

91
Перегрузка операторов &lt;&lt; и &gt;&gt; для базового класса и класса наследника

Перегрузка операторов << и >> для базового класса и класса наследника

Base - наследник Derived()Если у обоих этих классов есть функция print(), и мы заходим ее вызвать от *b, то вызовется функция определенная для Base, хотя...

156
Как правильно создавать функции?

Как правильно создавать функции?

Работая со старым кодом, столкнулся с интересным стилем

100
перевод каждого элемента стринг в инт

перевод каждого элемента стринг в инт

что нужно написать в цикле чтобы перевести каждый элемент стринга в инт и прибавить его в 'c'

86