Articles of makefile

Android NDK:如何将Android.mk包含到另一个Android.mk(分层项目结构)中?

看起来有可能,但我的脚本会产生奇怪的结果: LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) include $(LOCAL_PATH)/libos/Android.mk include $(LOCAL_PATH)/libbase/Android.mk include $(LOCAL_PATH)/utils/Android.mk LOCAL_MODULE := native include $(BUILD_SHARED_LIBRARY) 只有第一个包被解析正常,其他Android.mk文件正在奇数路径上被查询。 建议? 更新:我打破了我的建筑环境……在办公室没问题,但在家里LOCAL_PATH:= $(调用my-dir)将LOCAL_PATH定义为NDK目录而不是项目目录。 这是我的建筑批次: set BASHPATH=K:\cygwin\bin\bash set PROJECTDIR=/cygdrive/h/Alex/Alex/Work/Android/remote-android set NDKDIR=/cygdrive/h/Alex/Programming_Docs/Android/android-ndk-r6/ndk-build set APP_BUILD_SCRIPT=/cygdrive/h/Alex/Alex/Work/Android/project/jni/Android.mk set DEV_ROOT=h:/Alex/Alex/Work/Android/project %BASHPATH% –login -c “cd %PROJECTDIR% && %NDKDIR%” 更新:我完全不明白这件事是如何构成路径的。 我收到路径错误,如“/cygdrive/d/project/jni//cygdrive/d/Soft/project/jni/libos/src/libos.cpp”。这是在我决定指定根目录中的所有文件之后Android.mk而不是包含子模块。 更新2:没有运气,这也不起作用: LOCAL_PATH:= $(call my-dir) # Include makefiles here. include $(LOCAL_PATH)/libos/Android.mk include $(LOCAL_PATH)/libbase/Android.mk include $(LOCAL_PATH)/utils/Android.mk […]

如何为Android编译GCC?

有没有办法为Android编译GCC? 基本上,在Android终端模拟器中可以访问GCC编译器,并且能够编译将在C或C ++源文件的android上运行的二进制文件。 我的意图是使用它并最终安装make。

Android中的eng和用户调试构建之间的区别

我想知道两个build_flavor之间的区别。 eng&user-debug eng和用户构建风味之间的区别很明显。 但是eng和用户调试让我感到困惑。 在用户调试中不存在的eng中提供的附加调试工具是什么? 例如。 If I take only the Kernel being built: Will the Debugging levels differ for the eng and user-debug builds? 我正面临一个问题,用户调试版本在Android手机上启动。 但是build build不是,build_flavor是两个构建之间的唯一区别。 任何帮助/指针表示赞赏。 谢谢!

Android SDK突然缺少ant /文件夹。 谷歌删除了吗?

我已经尝试编译libreoffice核心项目(选择Android模块)(使用make ,还没有涉及Gradle),我收到此错误: /home/aleksandar/libreoffice/workdir/UnpackedTarball/owncloud_android_lib/build.xml:90: Cannot find /home/aleksandar/Android/Sdk/tools/ant/build.xml imported from /home/aleksandar/libreoffice/workdir/UnpackedTarball/owncloud_android_lib/build.xml 在查看我的SDK时,我意识到/Sdk/tools/ant文件夹甚至不存在。 这是应该的方式吗? 我不确定为什么它现在会导致错误,尤其是我已经多次构建项目而没有任何问题。 我意识到的唯一改变的是我已经更新了所有工具(SDK和NDK)。 发布此消息(2017年3月)期间是否有任何向后兼容性突破的变化? 它可能是源代码中引入错误的变化,但我确信它已经被注意到了,这种情况持续了几天……有没有人遇到过类似的问题?

从源代码构建Android:不支持的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 并且make进程最终失败: 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 我尝试过使用和不使用clang以及使用不同版本的clang来构建源代码。 但是在新的分支上,clang是一个要求,如果没有它,make就无法启动。 可能有什么问题?

以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….