Articles of makefile

以recursion方式读取子目录中的Android.mk文件

我只想问什么应该写在Android.mk文件也调用当前目录的子目录中的mk文件。 例: /packages/Android.mk /package/groupA/Android.mk /packages/groupA/AppA/Android.mk /packages/groupA/AppB/Android.mk 我知道通过使用include $(call all-subdir-makefiles) ,直接子目录中的Android.mk文件将被读取(例如:/package/groupA/Android.mk)。 但是,/packages/groupA/AppA/Android.mk和/packages/groupA/AppB/Android.mk不会被读取。 我不知道是否有其他macros做所有子目录的Android.mk的recursion阅读。 谢谢, artsylar

如何将应用程序安装到数据/应用程序文件夹而不是AOSP版本中的系统/应用程序文件夹?

我把我的应用程序文件夹中 packages/apps // inside AOSP source code 现在我的应用程序在相同的文件夹中有以下Android.mk : LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_PACKAGE_NAME := package_name LOCAL_CERTIFICATE := platform include $(BUILD_PACKAGE) # Use the folloing include to make our test app include $(call all-makefiles-under,$(LOCAL_PATH)) 现在,当我build立我的AOSP项目,它也编译我的应用程序,并把APK文件里面: 出/目标/产品/ $ MY_PLATFORM /系统/应用程序 但是我想把它放在: 出/目标/产品/ $ MY_PLATFORM / data / […]

如何设置GNUMAKEvariables为ndk生成工作

我正在尝试使ndk-build在Windows上的Cygwin中工作。 根据NDK文档(特别是INSTALL.htm), “NDK需要GNU Make 3.81或更高版本在您的开发中可用”。 我的电脑上安装了Gnu Make。 到现在为止还挺好。 在Cygwin bash中,我cd到android NDK根目录。 现在当我input下面的命令(现在没有参数,只是为了看看命令是否工作): $。/ NDKbuild造 错误:找不到'make'程序。 请安装Cygwin make package或者定义GNUMAKEvariables来指向它。 所以我尝试设置GNUMAKEvariables,但没有运气: $ export GNUMAKE ='/ cygdrive / c \ Program Files \ GnuWin32 \ bin' 错误:您的GNUMAKEvariables被定义为一个无效的名称:/ cygdrive / c \ Program Files \ GnuWin32 \ bin请修复它指向一个有效的make可执行文件(例如usr / bin / make) 我甚至尝试将它设置为usr / bin / make,因为它build议,但同样无效的名称错误。 任何人,知道如何解决这个问题? 我使用的是Windows […]

android ANTLR不能正常工作

我想在Android上使用ANTLR,而我发现这个: ANTLR和Android 下载AntlrJavaRuntime后,我不知道该怎么做,我应该这样做: 1. lunch the appropriate target 2. make AntlrJavaRuntime 3. verify that AntlrJavaRuntime.xml was placed in /system/etc/permissions and 4. AntlrJavaRuntime.jar was placed in /system/framework 5. after this, you can run a normal make 首先,步骤1甚至意味着什么? 其次,当我尝试做:使AntlrJavaRuntime我得到以下错误: ~/AntlrJavaRuntime$ make AntlrJavaRuntime make: Nothing to be done for `AntlrJavaRuntime'. 很难find有关这方面的文档,所以任何帮助都非常值得赞赏(或者一个清楚的例子就是如何让ANTLR为Android项目做好准备)。

生成yasm / source / patched-yasm / util.h错误:78:23:错误:libintl.h:没有这样的文件或目录

在build造了近半个小时后,我得到以下错误。 到目前为止,没有任何数量的Googlesearch帮助了… In file included from external/chromium_org/third_party/yasm/source/patched-yasm/libyasm/phash.c:2: external/chromium_org/third_party/yasm/source/patched-yasm/util.h:78:23: error: libintl.h: No such file or directory make: *** [out/host/darwin-x86/obj/STATIC_LIBRARIES/third_party_yasm_genperf_libs_host_gyp_intermediates/third_party/yasm/source/patched-yasm/libyasm/phash.o] Error 1 make: *** Waiting for unfinished jobs….

debugging与发布在Android NDK中构build

我正在研究一个必须移植到Android的大型游戏引擎。 所有的代码都是C / C ++,所以我们通过NDK移植。 我已经完成了所有的工作,但是在大量的search之后,我仍然不确定构buildDebug和Release版本的.so文件的最好方法是什么。 每次手工更换东西都变老了。 你有不同的Application.mk文件的每个目标? 或者有什么方法可以在jni /目录下的单个Android.mk文件中包含多个目标? 或者第三个选项可能是编写一个标准的makefile来设置Android.mk文件用来通知构build过程的环境variables? 最后,关于必须在AndroidManifest.xml文件中设置的android:debuggable标志的最后一个问题。 这实际上对复制到设备的生成本机代码有什么影响? 最好的和谢谢, 凯文

使用Android.mk复制/系统中的多个txt文件

目的:我想要使用Android.mk在/ system(Android设备)中复制多个 txt文件 我的发现: 我们可以使用两种方法复制文件1)使用PRODUCT_COPY_FILES。 这是从设备/ / makefile.mk完成的 例如: PRODUCT_COPY_FILES := \ frameworks/base/data/etc/telephony.gsm.xml:system/etc/permissions/telephony.gsm.xml \ some/other/sourc/file:some/destination \ some/other/sourcefile2: some/destination 2)使用BUILD_PREBUILD 例如: ##############copy txt file################## include $(CLEAR_VARS) #LOCAL_MODULE := mydata.txt LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := ETC LOCAL_MODULE_PATH := $(TARGET_OUT)/myfolder LOCAL_SRC_FILES := mydata.txt include $(BUILD_PREBUILT) 为了上面的工作,在build / target / product / core.mk中inputmydata.txt 我的具体查询是:现在我可以使用第二种方法复制多个文件,一个接一个地重写上面的代码。 但是我想用第二种方法(BUILD_PERBUILD)来复制多个txt文件,而不用重写所有文件的代码。 1)我可以做只有一个包括$(BUILD_PREBUILT)调用? 2)BUILD_MULTI_PREBUILD可以用来解决目的吗? 怎么样 ?

每个NDK的构build是一个完整的重build

可能重复: 防止ndk-build自动清理模块 Android项目与NDK库。 NDK r8c。 在Cygwin下编译(这是一个旧的项目)。 一堆C ++和C文件,以及一些通过LOCAL_LDLIBS链接的.a库。 从前一段时间以来,我注意到每个NDK构build都会覆盖所有源文件。 即使我连续两次调用ndk构build,第二次尝试也是完全重build。 在.mk文件中没有任何效果,我可以看到,我调用的命令是一个vanilla $NDKPATH/ndk-build 。 在任何地方都没有-B选项。 唯一的缺点是:在每一个版本上,NDK都说: /cygdrive/c/android-ndk-r8c/build/core/add-application.mk:128: Android NDK: WARNING: APP_PLATFORM android-9 is larger than android:minSdkVersion 3 in /cygdrive/d/AppPath/AndroidManifest.xml 怎么回事? 我可以以某种方式看到什么文件的date是make决定重build所有?

如何指定NDK_MODULE_PATH的目录

我在过去的几个小时里遇到了这个简单的问题。 我在我的Android项目的根目录中有ndk-modules目录,并且在我的Android.mk文件夹中有以下内容 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) NDK_MODULE_PATH := $(LOCAL_PATH)/../ndk-modules … $(call import-module,mymodule) 当我build立mk文件,我得到了 Android NDK: /MyApp/jni/Android.mk: Cannot find module with tag 'mymodule' in import path Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ? 我在这里做错了什么? 我如何正确指定path? 更新: 规范是正确的。 我在mymodule目录中遇到问题。 对困惑感到抱歉。

从源代码构buildAndroid:不支持的reloc 43

当我编译Android 5.1.1时,我得到了许多像这样的错误: … … … libnativehelper/JniInvocation.cpp:165: error: unsupported reloc 43 libnativehelper/JniInvocation.cpp:165: error: unsupported reloc 43 libnativehelper/JniInvocation.cpp:165: error: unsupported reloc 43 libnativehelper/JniInvocation.cpp:165: error: unsupported reloc 43 并且制作过程最终失败: clang: error: linker command failed with exit code 1 (use -v to see invocation) build/core/host_shared_library_internal.mk:44: recipe for target 'out/host/linux-x86/obj32/lib/libnativehelper.so' failed make: *** [out/host/linux-x86/obj32/lib/libnativehelper.so] Error 1 我已经尝试了使用和不使用铿锵声以及用不同版本的铿锵声创build声源。 但是在新的分支上,叮当是一个要求,没有它就不能开始。 什么可能是错的?