android.bp中让cc_binary不参与编译
时间: 2024-03-23 17:41:38 浏览: 17
要让 `cc_binary` 不参与编译,可以在 `android.bp` 文件中使用 `enabled: false` 属性。具体做法如下:
```
cc_binary {
name: "my_binary",
srcs: ["my_binary.c"],
enabled: false,
}
```
这样就可以让 `my_binary` 不参与编译。注意,这个属性只是禁用了这个 `cc_binary` 的编译,但它仍然会出现在所属的 `cc_library` 或 `cc_shared_library` 中。如果要完全从编译中排除这个二进制文件,可以在 `cc_library` 或 `cc_shared_library` 中将它从 `static_libs` 或 `shared_libs` 中移除。
相关问题
android.bp的cc_binary怎么增加头文件
在 `cc_binary` 中增加头文件可以通过在 `cc_binary` 的 `srcs` 属性中添加头文件路径来实现。你可以在 `cc_binary` 中添加类似以下代码:
```
cc_binary {
name: "your_binary_name",
srcs: ["your_source_file.cpp"],
hdrs: ["your_header_file.h"], // 添加头文件路径
...
}
```
其中,`hdrs` 属性指定了头文件的路径,可以是相对路径或绝对路径。你也可以使用通配符来指定多个头文件,例如:
```
cc_binary {
name: "your_binary_name",
srcs: ["your_source_file.cpp"],
hdrs: ["path/to/your/headers/*.h"], // 使用通配符指定多个头文件
...
}
```
在 Android.bp 文件中添加头文件路径后,当你编译该二进制文件时,`cc_binary` 会自动包含这些头文件。
Android.bp里实现user版本中不编译adbd服务
在 Android.bp 文件中,可以使用 `enabled` 属性来指定是否编译某个模块,包括 adbd 服务。因此,你可以在 `enabled` 中指定只有在 `userdebug` 和 `eng` 版本中才会编译 adbd 服务。
例如,以下的例子演示了如何在 `userdebug` 和 `eng` 版本中编译 adbd 服务,而在 `user` 版本中不编译它:
```
cc_binary {
name: "adbd",
srcs: ["adbd.c"],
android_applicable_abis: ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"],
host_supported: true,
enabled: false,
target: {
android: {
userdebug: {
enabled: true,
},
eng: {
enabled: true,
},
user: {
enabled: false,
},
},
},
}
```
在上面的例子中,`android_applicable_abis` 属性指定了支持的 CPU 架构,`host_supported` 属性指定了该二进制文件是否应该在主机上编译,`enabled` 属性指定了是否应该编译该二进制文件。在 `user` 版本中,`enabled` 属性被设置为 `false`,因此 adbd 服务不会被编译。