我想使用使用Gnu构建工具(gnu makefile)的巨大第三方本机库制作Android应用程序。
我的问题是如何为这些库编写“Android.mk”文件,以便使用Android构建系统或Android NDK构建它们。
提前致谢
答案 0 :(得分:0)
据我所知,你需要将makefile转换为android格式:( 并使用ndk_buidl构建它们
答案 1 :(得分:0)
唯一可行的方法是编写NDK makefile。许多大型图书馆都以这种方式移植过。通常,您应该运行configure
脚本来生成config.h和config.mak文件。您将使用config.mak列出您的来源。网上有教程可以移植一些用Android NDK构建的流行库。我在freetype,ffmpeg,SDL,DevIL等方面取得了成功。
答案 2 :(得分:0)
您可以使用以下技巧:下载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脚本构建您的库。
答案 3 :(得分:0)
ndk的最新版本允许您生成一个独立的工具链,它封装了大部分的android唯一性,因此可以像普通的gcc和支持程序一样调用它。这有点适合与现有的项目构建系统一起使用 - 尽管配置脚本假定能够在主机上执行目标功能测试代码将失败,就像在任何交叉编译案例中一样。