将Android.bp编译常用指令整理文档
时间: 2023-11-10 13:44:11 浏览: 55
以下是一些常用的Android.bp编译指令及其说明:
1. `mm`:编译当前目录下的模块。
2. `mma`:编译当前目录下的所有模块。
3. `mmm <路径>`:编译指定路径下的模块。
4. `mmma <路径>`:编译指定路径下的所有模块。
5. `mmm <路径>/<模块名>`:编译指定路径下的特定模块。
6. `m <模块名>`:编译指定模块。
7. `mm <模块名>`:编译指定模块及其依赖项。
8. `mma <模块名>`:编译指定模块及其依赖项,包括不需要重新编译的模块。
9. `m <模块名> -B`:强制重新编译指定模块。
10. `m -j <线程数>`:设置并行编译的线程数。
11. `m clobber`:清除所有已编译的输出文件。
12. `m dist`:生成发布版本的输出文件。
13. `m showcommands`:显示执行的命令。
这些是一些常用的编译指令,您可以根据具体需求进行调整和使用。请注意,指令的具体用法可能因环境和构建系统的不同而有所差异,建议查阅相关文档或官方指南以获取更详细的信息。
相关问题
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库。