Android C++生成complier_command.json

  • Android C++ 程序开发现状
    在 Android 下开发 C++ 程序,我见过绝大多数人都是不使用任何语法插件,就靠硬写,写完之后再根据编译报错来修改语法错误。这也怪不得程序员,一方面,Android 使用 Arm 平台的 clang 编译器,跟 x86 平台的开发环境并不是很兼容;另一方面,Android 要求我们将 C++ 程序放在 vendor 目录下,但是我们包含的头文件却是去 kernel/include 下面找的。如果想要自己配置插件的开发环境,通常都是一顿操作猛如虎,结果还是各种报错。

  • Compdb
    深入了解 Android 之后,我发现其实 Android 内置有 compdb 可以用来生成 compile_commands.json,流程上只需要设置几个环境变量即可:

cd /path/to/android/root    # Android 源码根路径
source build/envsetup.sh
lunch xxxx-userdebug
cd /path/to/app/dir         # 项目 Android.mk/Android.bp 所在目录
export SOONG_GEN_COMPDB=1
export SOONG_GEN_COMPDB_DEBUG=1
export SOONG_LINK_COMPDB_TO=$(pwd)
mm

等待一段时间后,就会在 /path/to/app/dir 目录下看到生成好的 compile_commands.json 了。需要注意的是,有些平台似乎不接受 SOONG_LINK_COMPDB_TO,不管怎么设置都固定生成在 Android 源码根目录,所以如果你在项目目录找不到该文件或者该文件无效,就去 Android 根目录看看。

  • 另一种办法 Compiledb-ninja (最简单)
    https://github.com/schspa/compiledb-ninja
    此方法不支持kernel仓库

This is Reference1Reference2

相关推荐

  1. Android 生成二维码

    2024-02-01 23:08:02       11 阅读
  2. Mac 生成Android签名证书 .keystore文件

    2024-02-01 23:08:02       48 阅读
  3. Android C++生成complier_command.json

    2024-02-01 23:08:02       37 阅读
  4. Android14 WMS-DisplayArea层级结构生成

    2024-02-01 23:08:02       31 阅读
  5. android pdf框架-6,文本生成pdf

    2024-02-01 23:08:02       23 阅读
  6. android pdf框架-5,生成pdf

    2024-02-01 23:08:02       22 阅读
  7. Android 生成Excel文件保存到本地

    2024-02-01 23:08:02       22 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-01 23:08:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-01 23:08:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-01 23:08:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-01 23:08:02       20 阅读

热门阅读

  1. 2024 React 面试问答

    2024-02-01 23:08:02       27 阅读
  2. ubuntu源码编译安装memcached和php-memcache 扩展

    2024-02-01 23:08:02       27 阅读
  3. 如何docker部署springboot项目

    2024-02-01 23:08:02       28 阅读
  4. 如何在python程序内连续运行多个代码

    2024-02-01 23:08:02       35 阅读
  5. 达梦数据库死锁排查与解决

    2024-02-01 23:08:02       36 阅读
  6. 【AI_Design】Midjourney技巧进阶

    2024-02-01 23:08:02       34 阅读
  7. 2023年常用网络安全政策标准整合

    2024-02-01 23:08:02       33 阅读
  8. 自定义View

    2024-02-01 23:08:02       32 阅读
  9. jsonwebtoken使用HS256生成token失败

    2024-02-01 23:08:02       34 阅读
  10. C++从零开始的打怪升级之路(day28)

    2024-02-01 23:08:02       29 阅读