覆盖目标 Android Makefile 的命令

2024-02-20

我正在尝试使用 g++ 编译我的 Android ndk 项目中的模块之一,尽管源代码都是 C 语言。 make 系统警告刺激了我的眼睛:

`C:/NVPACK/android-ndk-r8d/build/core/build-binary.mk:348: warning: overriding commands for target 'obj/local/armeabi/objs/xxx/yyy.o'`  
`C:/NVPACK/android-ndk-r8d/build/core/build-binary.mk:345: warning: ignoring old commands for target 'obj/local/armeabi/objs/xxx/yyy.o'`

这些警告对将与源文件以及对象一样多地被打印。

我尝试声明具有所有不同风格的 LOCAL_SRC_FILES 。

`LOCAL_SRC_FILES :=  
$(LOCAL_PATH)/Directory/source.c   
$(notdir $(wildcard $(LOCAL_PATH)/*.c))  
$(notdir $(wildcard $(LOCAL_PATH)/Directory/*.c))  
$(addprefix DirectoryPrefix/,$(notdir $(wildcard $(LOCAL_PATH)/Directory/*.c)))`

但警告仍然存在。
制作文件说:
警告:覆盖目标 xxx'' 的命令 警告:忽略目标 xxx 的旧命令” GNU make 允许每个目标仅指定一次命令(双冒号规则除外)。如果您为已定义为具有命令的目标发出命令,则会发出此警告,并且第二组命令将覆盖第一组命令。

但我根本不明白这有什么关系。 处理完后,似乎让 g++ 编译这些 C 文件会出现此警告。
因此指定此声明:
LOCAL_CPP_EXTENSION := .c
导致 C 文件使用 g++ 构建的原因。因为用 gcc 编译时不会打印任何警告。


确保您已包含明确的变量:

include $(CLEAR_VARS)

如果构建任何其他库,则包含正确的构建宏,例如

include $(BUILD_SHARED_LIBRARY)

我一两天前就遇到过这个问题,在添加一个新库时,我忘记了包含其中一个或另一个(我认为 CLEAR_VARS 最有意义。)因此,它将主库中的一些值重新附加到子图书馆,反之亦然。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

覆盖目标 Android Makefile 的命令 的相关文章

  • makefile 中的路径不起作用

    我正在运行以下命令makefile哪些需要改变dir到特定目标并在那里运行npm install 问题是我能够在输出中看到它将目录 项目 应用程序 打印到正确的目录 但安装 npm install 在上层 项目 上运行 为什么 例如 当我运
  • ANDROID NDK - android:找不到命令

    我试图完成 Android NDK 中提供的第一个示例练习 我试图在 cygwin 上运行以下命令 android update project p 然而 我得到android command not found error 我检查了我的
  • 使用 gnu make 正确构建 git 子模块

    我目前尝试编写一个 Makefile 来正确构建一个包含 git 子模块的项目 该子模块有自己的一组 makefile 并一次生成多个目标 包括一些库 该 Makefile 应具有以下属性 即使使用并行构建 也不要重建两次子模块 当子模块代
  • 如何在 GNU Make 模式规则中包含路径前缀

    考虑以下 foo bar echo lt gt 假设我们有一个文件1 bar 执行的命令很简单echo 1 bar gt 1 foo 然而 当 包含一个路径 而不仅仅是一个文件名 它开始变得挑剔 我的问题是我想在前面添加另一条路径 bar
  • 在哪里可以找到旧版本的 Android NDK? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道在哪里可以找到旧版本的 Android NDK 我们的代码不是用 r6 构建的 肯定有某个地方
  • 如何在 makefile 中针对特定目标使用 include 指令

    我只想将 include 指令用于特定目标 当不需要目标时 我不想运行其他 makefile 因为这意味着 makefile 是不必要生成的 那么有没有一种方法可以有条件地使用 include 指令 该指令以目标为条件 或者以某种方式使 i
  • 错误:安装 ffi 时出错:错误:无法构建 gem 本机扩展

    我在 Mac 64 位系统中遇到此错误 并且机器上安装了 xcode Building native extensions This could take a while ERROR Error installing ffi ERROR F
  • 如果覆盖率低于一定百分比,则单元测试失败

    我制作了一个执行的 makefilego test cover 是否有可能失败make unit tests如果覆盖范围低于 X 则命令 我该怎么做呢 您可以使用TestMain在你的测试中做到这一点 TestMain 可以充当测试的自定义
  • C 预处理器“/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cpp”未通过完整性检查

    在使用 Xcode 11 3 的 macOS Mojave 上 我有一个基于 Autotool 的第三方库 在终端中运行我的构建脚本时构建得很好 但在 Xcode 中运行时失败Run Script步骤为 BuildScript Showin
  • 在 Unix 中,我可以在目录中运行“make”而无需先 cd 到该目录吗?

    在 Unix 中 我可以运行make在没有的目录中cd首先进入该目录 make C path to dir
  • 通过相同的 Makefile 生成 Makefile 的包含文件

    在我的程序中 我有一个有点复杂的构建过程 目前 在我使用的一个目录中include in Makefile am对于一个文件 该文件不存在 但必须自行构建 原因是这个包含文件相当长 此外 在实际程序中 它不仅仅是一个文件 而是多个文件 并且
  • 使用 makefile 和静态模式规则进行树外构建

    我正在开发一些在 ARM 上运行的裸机嵌入式代码 因此必须处理整个 ARM 与 THUMB 模式的区别 当前的构建系统使用静态模式规则来确定是否以 ARM 或 THUMB 模式编译文件 ACOBJS o c echo CC c CFLAGS
  • 在 Android Studio 中使用预构建的共享库

    我需要在我的 android 项目中使用自定义的预构建共享库 在独立 ndk 上构建为 libdynamic so 我在路径 src main 中创建了一个文件夹 jniLibs 然后在其中创建了 4 个文件夹 即 armeabi arme
  • 如何在Android项目中使用libffmpeg.so?

    我正在尝试在 Android 中创建一个屏幕录制应用程序 为此 我使用 FFmpeg 我已经创建了 libffmpeg so 文件 现在我想在 Android 项目中使用相同的方法来调用它的本机函数 我怎样才能做到这一点 本教程提供了有关此
  • 如何不在输出中打印 makefile 中的注释

    我有一个像这样的 makefile install somecommand some explanation for next command lastcommand 发生的事情是评论 some explanation for next c
  • 如何调用位于其他目录的Makefile?

    我正在尝试这样做 我想打电话给 make Makefile存在于其他目录中 abc可以使用位于不同目录中的 shell 脚本的路径 我该怎么做呢 由于 shell 脚本不允许我cd进入Makefile目录并执行make 我怎样才能编写she
  • 使用 Android NDK r5b 链接静态库时出现问题 [重复]

    这个问题在这里已经有答案了 最近升级到 NDK r5b 构建失败 并出现对静态库中函数的 未定义引用 这是错误 home brian workspace VoiceEngineDemo obj local armeabi v7a objs
  • 如何在使用cmake完成make后打印消息?

    我正在尝试使用 CMake 完成构建过程后打印消息 我只是想在之后通知用户make命令已完成 没有任何错误 我该怎么做 我试过add custom target 但我无法选择何时跑步 另外 我尝试过add custom command 它再
  • 如何通过 JNI 将本机枚举公开给 Java?

    我正在从现有项目导入标头以将端口移植到 Android NDK 在某些情况下 我想在 Java 层使用本机标头中定义的枚举 怎样才能做到这一点呢 理想情况下 我想以某种方式将常量公开给 Java 层 但我没有找到这样做的方法 最明显的可能性
  • Android 从 C++ 端播放原始音频

    我需要能够在 Android 系统的 C 端以自定义文件格式传输音频 我正在致力于移植自定义媒体播放器 并且需要能够打开自定义文件并从中传输音频 这很重要 因为我认为从性能角度来看将整个播放器移植到 JAVA 是不可行的 并且通过 JNI

随机推荐

  • 验证 Rails 中多对多关联的唯一性

    说我有Project 即与多对多关联Tag 我在用着有 许多通过所以我有单独的连接模型 如何创建验证来检查连接模型的唯一性 现在我只有 has many tags through gt taggings uniq gt true 但这并不在
  • MVC 应用程序调试时出错:视图状态 MAC 验证失败

    现在开始表单 第一次 当我开始调试 MVC 应用程序时 我收到此错误 视图状态 MAC 验证失败 如果 该应用程序由 Web 托管 农场或集群 确保 配置指定 相同的validationKey和validation 算法 无法使用自动生成
  • 如何使用 NHibernate 高效地进行 TDD?

    在我看来 大多数人在使用 NHibernate 时都会针对内存中 进程内数据库 例如 SQLite 编写测试 我已经启动并运行了它 但我的第一个测试 使用 NHibernate 总是需要 3 4 秒才能执行 下一个测试运行得更快 我使用 F
  • 是否有 gist.github.com 的内部替代方案可以在防火墙后面运行?

    gist github com 非常方便 但我希望能够运行类似的东西来与我工作的防火墙后面的其他开发人员在内部共享代码示例 因此我不需要一直清理我的代码 只讲代码示例 有这样的事情存在吗 我并不追求大型项目管理工具 只是一种制作一次性要点并
  • OpenShift 无法处理某些 Nodejs 依赖项 (Koa)

    我已经结账了如何在 Openshift 中设置 KoaJS https stackoverflow com questions 26924967 how to setup koajs in openshift但它仍然不起作用 这是我的一部分
  • Apache 作为 ubuntu 上的 root

    好的 我需要运行我的 Apache Web 服务器root 为此我输入了whoami 在终端 它给了我输出 root 但是当我通过执行以下 php 脚本检查我的 apache 服务器是否以 root 用户身份运行时 它给了我输出 nobod
  • 从终端安装 npm 错误

    我正在尝试在我的 mac 中安装节点 我收到以下错误 我从节点站点下载了节点并运行了该包 你们能告诉我为什么我会遇到这个错误 当我执行 npm install 时 MacBook Pro Raj npm install npm ERR in
  • Pickle 无法与 tkinter 一起使用

    我正在用 Tkinter 制作一个小游戏 它有一个使用 pickle 的保存功能 但是 当我尝试保存时 它会弹出以下消息 Exception in Tkinter callback Traceback most recent call la
  • 具有嵌套列表的 Terraform 动态块

    我需要使用 Terraform 在 Pagerduty 中创建升级策略 我想动态创建rule块 然后在其中target块的值来自rule 我不知道如何在目标块内进行第二次调用以使其动态 我有一个列表中的团队列表 locals teams d
  • React Native - 动态列出/需要目录中的文件

    我正在使用 Redux 并希望动态包含目录中的所有文件 redux index js Actions import as authActions from auth authActions import as deviceActions f
  • 如何从图像中仅提取字符?

    我有这种类型的图像 我只想从中提取字符 二值化后 我得到这个图像 img cv2 imread the image jpg gray cv2 cvtColor img cv2 COLOR BGR2GRAY thresh cv2 adapti
  • 如何在密度分布图的两端添加两个阴影

    如何在两端添加阴影 如下图所示 我想添加一端从 0 到 995 和 1 995 到 Inf 我在这里尝试了解决方案https stackoverflow com a 4371473 3133957 https stackoverflow c
  • 如何用 Python 构建提升图(又名增益图)?

    我刚刚使用 scikit learn 创建了一个模型 它可以估计客户对某些报价做出回应的可能性 现在我正在尝试评估我的模型 为此 我想绘制提升图 我理解 lift 的概念 但我很难理解如何在 python 中实际实现它 您可以使用sciki
  • NetLogo 以字符列表的形式读入文件

    我是 NetLogo 新手 我有一个包含一行值的文本文件 ABC CDC BBC 我试图读取该文件的第一行作为字符列表 例如 A B C 我一直在尝试使用文件读取行 但它创建了一个字符串 ABC observer gt file open
  • 如何开始程序生成?

    程序生成 http en wikipedia org wiki Procedural generation最近 由 Spore MMO 等 引起了人们的关注 它似乎是一种有趣 强大的编程技术 我的问题是 您知道有哪些使用程序生成技术的中型项
  • 在 ASP.NET WebApi 中测试路由配置

    我正在尝试对我的进行一些单元测试WebApi http www asp net web api路由配置 我想测试一下路线 api super 映射到Get 我的方法SuperController 我已经设置了以下测试 但遇到了一些问题 pu
  • 为复选框数组放置错误消息

    我正在使用 jQuery 的验证插件 它的效果非常好 除非我有一组复选框 错误消息将在第一个复选框之后显示 就像这样 tbody tbody
  • 在docker容器中运行djangoworker和daphne

    我有在 docker 容器中运行的 django 应用程序 最近我发现我需要向我的应用程序添加 websockets 接口 我在 nginx 和 redis 后面使用带有 daphne 的通道作为缓存 问题是我必须在 1 个容器中运行 dj
  • 转移可变借用的所有权

    我的理解是 可变借款人可以将所有权转移给另一个可变借款人 但这个移动似乎与移动非指针变量有点不同 让我们看一个例子 以下p1被转移到p2 when compute 被称为第一次 但所有权似乎又回到了p1 after compute 返回 f
  • 覆盖目标 Android Makefile 的命令

    我正在尝试使用 g 编译我的 Android ndk 项目中的模块之一 尽管源代码都是 C 语言 make 系统警告刺激了我的眼睛 C NVPACK android ndk r8d build core build binary mk 34