如何在Android.bp中指定预编译的库文件,不进行strip
时间: 2024-03-18 11:39:34 浏览: 16
在Android.bp中指定预编译的库文件,并且不进行strip操作,可以使用以下方式:
1. 在`cc_library`模块中设置`strip`属性为`never`,如下所示:
```
cc_library {
name: "my_lib",
srcs: ["my_lib.so"],
strip: {
none: true,
},
...
}
```
2. 使用`prebuilt_etc`模块来引用预编译的库文件,并设置`strip`属性为`never`,如下所示:
```
prebuilt_etc {
name: "my_lib",
src: "prebuilt/my_lib.so",
strip: {
none: true,
},
...
}
cc_library {
name: "my_other_lib",
shared_libs: ["my_lib"],
...
}
```
使用以上方式可以在Android.bp中指定预编译的库文件并且不进行strip操作。
相关问题
android.bp中如何配置strip选项为不进行strip
在 Android.bp 文件中,可以通过在模块的 `cflags` 属性中添加 `-Wl,-s` 选项来进行 strip 操作。如果要禁用 strip 操作,可以将 `-Wl,-s` 选项从 `cflags` 属性中移除。
例如,以下代码片段展示了如何在 Android.bp 文件中禁用 strip 操作:
```
cc_binary {
name: "example",
srcs: ["example.c"],
cflags: ["-Wall"],
strip: {
none: true,
},
}
```
在上面的代码中,`strip` 属性的值为 `{none:true}`,表示禁用 strip 操作。
Android.bp里实现user版本不编译某些bin文件
在 Android.bp 文件中,可以使用 `android_applicable_abis` 属性来指定应该为哪些 CPU 架构编译应用程序或二进制文件。因此,你可以在 `android_applicable_abis` 中指定只有在 `userdebug` 和 `eng` 版本中才会编译某些二进制文件。
例如,以下的例子演示了如何在 `userdebug` 和 `eng` 版本中编译名为 `example_bin` 的二进制文件,而在 `user` 版本中不编译它:
```
cc_binary {
name: "example_bin",
srcs: ["example_bin.c"],
android_applicable_abis: ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"],
host_supported: true,
target: {
android: {
userdebug: {
enabled: true,
},
eng: {
enabled: true,
},
user: {
enabled: false,
},
},
},
}
```
在上面的例子中,`android_applicable_abis` 属性指定了支持的 CPU 架构,`host_supported` 属性指定了该二进制文件是否应该在主机上编译,`target` 属性指定了不同版本的 Android 中是否应该编译该二进制文件。在 `user` 版本中,`enabled` 属性被设置为 `false`,因此该二进制文件不会被编译。