【问题标题】:How to write Android.mk for library using Gnu makefile如何使用 Gnu makefile 为库编写 Android.mk
【发布时间】:2011-02-15 10:47:06
【问题描述】:

我想使用使用 Gnu 构建工具 (gnu makefile) 的大型第三方原生库制作 Android 应用程序。

我的问题是如何为这些库编写“Android.mk”文件,以便使用 Android 构建系统或 Android NDK 构建它们。

提前致谢

【问题讨论】:

    标签: android android-ndk gnu-make


    【解决方案1】:

    据我了解,您需要将 makefile 转换为 android 格式 :( 并使用 ndk_buidl 构建它们

    【讨论】:

      【解决方案2】:

      唯一可行的方法是编写 NDK 生成文件。许多大型图书馆都是以这种方式移植的。通常您应该运行configure 脚本来生成config.h 和config.mak 文件。您将使用 config.mak 列出您的来源。网上有一些教程可以移植一些使用 Android 的 NDK 构建的流行库。我在 freetype、ffmpeg、SDL、DevIL 等方面取得了成功。

      【讨论】:

        【解决方案3】:

        您可以使用以下技巧:下载agcc,然后使用 ./configure CC=agcc CXX=agcc --host=arm-linux-androideabi && make。之后像这样创建简单的jni/Android.mk

        LOCAL_PATH:= $(call my-dir)
        include $(CLEAR_VARS)
        
        LOCAL_SRC_FILES := jni.cpp # this file will provide native methods for java part
        LOCAL_LDLIBS += libYourLibraryBuiltWithGNUToolchain.a
        LOCAL_MODULE := YourSoLibrary
        
        include $(BUILD_SHARED_LIBRARY)
        

        之后,您可以使用 ndk-build 脚本构建您的 so 库。

        【讨论】:

          【解决方案4】:

          最新版本的 ndk 允许您生成一个独立的工具链,该工具链封装了大部分 android 独特性,以便可以像普通 gcc 和支持程序一样调用它。这有点适合与现有的项目构建系统一起使用——尽管假定能够在主机上执行目标功能测试代码的配置脚本将会失败,就像在任何交叉编译情况下一样。

          【讨论】:

            猜你喜欢
            • 2012-04-19
            • 1970-01-01
            • 2023-03-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-12-22
            • 2023-03-04
            • 1970-01-01
            相关资源
            最近更新 更多