gpt4 book ai didi

android - 在 Android NDK 中使用 pngquant 库(libimagequant)

转载 作者:太空宇宙 更新时间:2023-11-04 04:42:20 35 4
gpt4 key购买 nike

我正在尝试在我的 Android 项目中使用 pngquant.org/lib 上的 png 量化库,该项目在 OS X 上使用 NDK r10(64 位)。

我在编译库方面取得了进展。我现在遇到的问题是无法解析size_t类型。我尝试包括以下文件夹:

LOCAL_C_INCLUDES := $(NDK_TOOLCHAIN)/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9/include

但这并没有帮助。

我真的对包含 pngquant 的空的 Android 工作项目很感兴趣。

非常感谢任何帮助。

注意,很抱歉更改了问题,但我提出的原始问题中有一些不正确的事实。

最佳答案

我没有足够的信息直接解决您的具体问题,您是否尝试使用独立工具链?

在为 Android 构建时,由于您的目标架构不止一种,而且工具链有点复杂,因此最好使用 NDK 中的 ndk-build 脚本。

我在这里创建了一个项目,您可以将其集成到您的 Android 项目目录中:https://github.com/android-native-libraries/pngquant-android

原始库使用的是配置脚本,但我没有扩展这些脚本,而是重写了 NDK Makefile 以直接编译所有 lib 源,使用相同的 cflags(openmp、sse...)

Android.mk:

LOCAL_PATH := $(call my-dir)

SRC_PATH := pngquant/lib

include $(CLEAR_VARS)
LOCAL_MODULE := imagequant
LOCAL_SRC_FILES := \
$(SRC_PATH)/blur.c \
$(SRC_PATH)/libimagequant.c \
$(SRC_PATH)/mediancut.c \
$(SRC_PATH)/mempool.c \
$(SRC_PATH)/nearest.c \
$(SRC_PATH)/pam.c \
$(SRC_PATH)/viter.c

LOCAL_C_INCLUDES := pngquant/lib

LOCAL_CFLAGS += -O3 -fno-math-errno -funroll-loops -fomit-frame-pointer -Wall -std=c99 -fopenmp
LOCAL_LDFLAGS += -fopenmp

ifeq ($(TARGET_ARCH_ABI),x86)
LOCAL_CFLAGS += -mtune=atom -msse -mfpmath=sse -mssse3 -DUSE_SSE=1
endif

include $(BUILD_SHARED_LIBRARY)

您可以扩展此 Android.mk 文件以使用您使用 libimagequant 的源添加您自己的 native 库:包括 $(CLEAR_VARS) LOCAL_MODULE := 你的库 LOCAL_SRC_FILES := yoursources.c LOCAL_C_INCLUDES := pngquant/lib LOCAL_SHARED_LIBRARIES := 图像量化

LOCAL_CFLAGS += -O3 -fno-math-errno -funroll-loops -fomit-frame-pointer -Wall -std=c99 -fopenmp
LOCAL_LDFLAGS += -fopenmp

ifeq ($(TARGET_ARCH_ABI),x86)
LOCAL_CFLAGS += -mtune=atom -msse -mfpmath=sse -mssse3 -DUSE_SSE=1
endif

include $(BUILD_SHARED_LIBRARY)

关于android - 在 Android NDK 中使用 pngquant 库(libimagequant),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25116305/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com