【问题标题】:Adding libpng in android ndk project在android ndk项目中添加libpng
【发布时间】:2012-12-25 03:23:09
【问题描述】:

我已经搜索了很多关于将 libpng 链接到我的 android ndk 项目的主题,但我找到了解决我的问题的正确答案,我希望有人能帮助我。

这是我项目的层次结构:

jni

different_cpp_files
different_hpp_files
Android.mk
libpng
    different_cpp_files
    different_hpp_files
    Android.mk

libpng 文件夹中的 Android.mk:


LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LS_C=$(subst $(1)/,,$(wildcard $(1)/*.c))

LOCAL_MODULE := png

LOCAL_SRC_FILES := \

$(filter-out example.c pngtest.c,$(call LS_C,$(LOCAL_PATH)))

LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)

LOCAL_EXPORT_LDLIBS := -lz

include $(BUILD_STATIC_LIBRARY)

我想一切都在这里..

jni 文件夹中的 Android.mk:


LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LS_CPP=$(subst $(1)/,,$(wildcard $(1)/*.cpp))

LOCAL_MODULE    := pacman

LOCAL_CFLAGS    := -Wno-psabi

LOCAL_SRC_FILES := $(call LS_CPP,$(LOCAL_PATH))

LOCAL_LDLIBS    := -landroid -llog -lEGL -lGLESv1_CM -lOpenSLES

LOCAL_STATIC_LIBRARIES := android_native_app_glue png

include $(BUILD_SHARED_LIBRARY)

$(call import-module,android/native_app_glue)

$(call import-module,libpng)

最后一行显示我得到了像 native_app_glue lib 一样的 libpng(在 android-ndk 源目录中)现在我想从我的项目中编译 libpng。我需要在 Android.mk 文件中更改什么?

【问题讨论】:

    标签: android-ndk libpng


    【解决方案1】:

    我为你准备了另一种方式:

    1. 从此处下载所有文件并将其粘贴到系统上任意位置的新文件夹中:
      https://github.com/julienr/libpng-android

    2. 进入文件夹并运行:
      ./build.sh

    3. 你会在[YOUR_FOLDER]/obj/local/armeabi/libpng.a中获得一个libpng.a文件
      将此文件复制到:
      [YOUR_ANDROID_NDK_FOLDER]/platforms/[ALL_FOLDERS_IN_HERE]/arch-arm/usr/lib/

    4. 现在您可以在所有项目中使用 libpng,只需一行:
      LOCAL_LDLIBS += -lpng

    5. 您只需将其包含在您的 cpp 中:
      #include <png.h>

    玩得开心!

    【讨论】:

    • 非常感谢您的回答,但这不是我想要的。我必须将我的项目发送给公司。我认为告诉他们必须做什么才能使我的项目正常运行是不礼貌的——我的意思是复制 android_ndk_folder 中的文件等等。他们只会编译它,所以所有必要的文件都需要包含在项目中。
    • 这仅适用于 ARM 设备,然后仅适用于旧设备。您缺少 MIPS、64 位 ARM、x86、64 位 x86、带有浮点单元的 ARM,...
    • 这就像一个 Widnwos 开发者的魅力建筑......它也适用于旧版本的 libpng。用 1.4.19 测试。只需从官方网站下载并将 Android 和 Application.mk 文件复制/粘贴到下载的文件夹并运行 ndk-build
    猜你喜欢
    • 2017-05-29
    • 1970-01-01
    • 2011-03-27
    • 2017-12-31
    • 2018-12-10
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 2016-05-08
    相关资源
    最近更新 更多