将Android.bp编译常用指令整理文档
时间: 2023-11-10 14:44:11 浏览: 39
当编译 Android.bp 文件时,常用的指令如下:
1. 编译整个 Android 项目:
$ m
2. 清除编译生成的文件:
$ m clean
3. 编译指定的模块:
$ m <module>
例如,要编译名为 "MyModule" 的模块:
$ m MyModule
4. 仅编译指定的目标:
$ m <target>
例如,要编译名为 "MyTarget" 的目标:
$ m MyTarget
5. 强制重新编译所有模块:
$ m clobber
6. 仅编译并安装指定的模块到设备:
$ m install <module>
例如,要安装名为 "MyModule" 的模块:
$ m install MyModule
7. 清除并重新编译指定的模块:
$ m <module>-clean
例如,要清除并重新编译名为 "MyModule" 的模块:
$ m MyModule-clean
8. 清除并重新编译指定的目标:
$ m <target>-clean
例如,要清除并重新编译名为 "MyTarget" 的目标:
$ m MyTarget-clean
这些是一些常用的 Android.bp 编译指令,希望对你有帮助!如有需要,请随时提问。
相关问题
Android.bp编译到指定位置
要将 Android.bp 中编译的模块输出到指定位置,可以在 Android.bp 中使用 `output` 属性来指定输出路径,例如:
```
cc_library {
name: "mylib",
srcs: ["mylib.cpp"],
output: ["mylib.so"],
target: {
android: {
arch: {
arm: {
enabled: true,
},
},
},
},
}
```
在上面的例子中,`output` 属性指定了编译输出文件的名称和路径为 `mylib.so`,这个文件将会在当前模块的输出路径下生成。如果你想要将编译输出文件放到指定的目录下,可以使用 `subdir` 属性来指定一个子目录,例如:
```
cc_library {
name: "mylib",
srcs: ["mylib.cpp"],
output: ["lib/mylib.so"],
subdir: "lib",
target: {
android: {
arch: {
arm: {
enabled: true,
},
},
},
},
}
```
在这个例子中,`output` 属性中的路径是 `lib/mylib.so`,`subdir` 属性指定了子目录为 `lib`,这样编译输出文件就会被放到 `out/target/product/<product>/obj/lib` 目录下。
android.bp编译缺失“sha.h”
这个问题可能是由于缺少OpenSSL库文件导致的。你可以尝试在Android.bp文件中添加以下内容:
```
cc_library {
name: "libssl",
srcs: ["libssl.a"],
exported_headers: ["include/openssl"],
target: {
android: {
srcs: ["libssl_android.a"],
},
},
}
```
然后在你的模块中添加以下依赖:
```
cc_library_shared {
name: "my_module",
srcs: ["my_module.cpp"],
shared_libs: ["libssl"],
...
}
```
这应该可以解决编译缺失“sha.h”的问题。请确保你的系统中已经安装了OpenSSL库。