当前位置: 首页 > news >正文

Android12之报错 error: BUILD_COPY_HEADERS is obsolete(一百六十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:解决Android12编译报错:error: BUILD_COPY_HEADERS is obsolete。

2.报错:

error: BUILD_COPY_HEADERS is obsolete. See https://android.googlesource.com/platform/build/+/master/Changes.md#copy_headers.
21:33:52 ckati failed with: exit status 1

3.BUILD_COPY_HEADERS/LOCAL_COPY_HEADERS描述

  • build/make/Changes.md
## COPY_HEADERS usage now produces warnings {#copy_headers}We've considered `BUILD_COPY_HEADERS`/`LOCAL_COPY_HEADERS` to be deprecated for
a long time, and the places where it's been able to be used have shrinked over
the last several releases. Equivalent functionality is not available in Soong.See the [build/soong/docs/best_practices.md#headers] for more information about
how best to handle headers in Android.

4.BUILD_COPY_HEADERS/LOCAL_COPY_HEADERS具体替代方案描述

  • build/soong/docs/best_practices.md
## Headers`LOCAL_COPY_HEADERS` is deprecated. Soong modules cannot use these headers, and
when the VNDK is enabled, System modules in Make cannot declare or use them
either.The set of global include paths provided by the build system is also being
removed. They've been switched from using `-isystem` to `-I` already, and are
removed entirely in some environments (vendor code when the VNDK is enabled).Instead, use `LOCAL_EXPORT_C_INCLUDE_DIRS`/`export_include_dirs`. These allow
access to the headers automatically if you link to the associated code.If your library uses `LOCAL_EXPORT_C_INCLUDE_DIRS`/`export_include_dirs`, and
the exported headers reference a library that you link to, use
`LOCAL_EXPORT_SHARED_LIBRARY_HEADERS`/`LOCAL_EXPORT_STATIC_LIBRARY_HEADERS`/`LOCAL_EXPORT_HEADER_LIBRARY_HEADERS`
(`export_shared_lib_headers`/`export_static_lib_headers`/`export_header_lib_headers`)
to re-export the necessary headers to your users.Don't use non-local paths in your `LOCAL_EXPORT_C_INCLUDE_DIRS`, use one of the
`LOCAL_EXPORT_*_HEADERS` instead. Non-local exported include dirs are not
supported in Soong. You may need to either move your module definition up a
directory (for example, if you have ./src/ and ./include/, you probably want to
define the module in ./Android.bp, not ./src/Android.bp), define a header
library and re-export it, or move the headers into a more appropriate location.Prefer to use header libraries (`BUILD_HEADER_LIBRARY`/ `cc_library_headers`)
only if the headers are actually standalone, and do not have associated code.
Sometimes there are headers that have header-only sections, but also define
interfaces to a library. Prefer to split those header-only sections out to a
separate header-only library containing only the header-only sections, and
re-export that header library from the existing library. This will prevent
accidentally linking more code than you need (slower at build and/or runtime),
or accidentally not linking to a library that's actually necessary.Prefer `LOCAL_EXPORT_C_INCLUDE_DIRS` over `LOCAL_C_INCLUDES` as well.
Eventually we'd like to remove `LOCAL_C_INCLUDES`, though significant cleanup
will be required first. This will be necessary to detect cases where modules
are using headers that shouldn't be available to them -- usually due to the
lack of ABI/API guarantees, but for various other reasons as well: layering
violations, planned deprecations, potential optimizations like C++ modules,
etc.

5.如何解决

include $(BUILD_COPY_HEADERS)

修改为:

include $(BUILD_BROKEN_USES_BUILD_COPY_HEADERS)

http://www.lryc.cn/news/196301.html

相关文章:

  • vue前端中v-model与ref的区别
  • 探索未来:硬件架构之路
  • Linux 系统安装 Redis7 —— 超详细操作演示!
  • 首次建站用香港服务器有影响没?
  • 大数据Flink(九十八):SQL函数的归类和引用方式
  • Python文件共享+cpolar内网穿透:轻松实现公网访问
  • Flink之源算子Data Source
  • 在雷电模拟器9上安装magisk并安装LSPosed模块以及其Manager管理器(一)
  • Apache atlas 元数据管理治理平台使用和架构
  • MFF论文笔记
  • Leetcode 02.07 链表相交(链表)
  • Bootstrap的媒体对象组件(图文展示组件),挺有用的一个组件。
  • Day2力扣打卡
  • 项目经理每天,每周,每月的工作清单
  • Java —— 运算符
  • 【C++ 中的友元函数:解密其神秘面纱】
  • YOLOv8涨点技巧:手把手教程,注意力机制如何在不同数据集上实现涨点的工作,内涵多种网络改进方法
  • 牛客:FZ12 牛牛的顺时针遍历
  • 函数防抖(javaScript)
  • 日常学习记录随笔-redis实战
  • MySQL事务MVCC详解
  • SQL RDBMS 概念
  • onlyoffice的介绍搭建、集成过程。Windows、Linux
  • 37. 解数独
  • git cherry-pick 合并某次提交
  • 【面试HOT100】子串普通数组矩阵
  • XPSpeak软件教程-科学指南针
  • NLP算法面经 | 腾讯 VS 美团
  • 【广州华锐互动】塔吊多人安拆VR互动培训系统
  • Linux性能优化--性能工具:特定进程内存