Files
phs_v1.0.1.0/build/docs/FAQ.md
2024-09-27 19:16:49 +08:00

54 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 常见问题汇总
### 如何将一个模块编译并打包到版本中?
- 模块要指定part\_name指定它归属的部件一个模块只能属于一个部件
- 部件的模块要在部件配置的module\_list中或者可以被module\_list中的模块依赖到
- 部件要加到对应产品的部件列表中;
### 如何指定模块在image中的安装路径如何实现模块打包到指定image
每一种编译模板都有缺省的打包路径,比如:
- ohos_executable
打包到对应镜像的bin目录下`/system/bin`目录;
- ohos_shared_library
打包到对应镜像的lib(64)目录下, 如:`/system/lib(64)`目录;
- ohos_prebuilt_etc
打包到对应镜像的etc目录下, 如:`/system/etc`目录;
如果要自定义打包路径,可以在模块定义中使用参数指定:
**module_install_dir**
模块安装路径从system/vendor/后开始指定
**relative_install_dir**
模块安装相对路径相对于模板的缺省路径比如ohos_executable模板就是从system/bin/开始;
*注意如果有module_install_dir配置时relative_install_dir不生效。*
**模块实现打包到指定image**
使用`install_images = []`指定模块需要打包到哪个image中缺省为system可以同时打包到多个分区
比如:
- `install_images = [ "vendor" ]` 打包到vendor.img
- `install_images = [ "system", "vendor" ]` 同时打包到system和vendor中
### 关于--build-target使用
build-target 是传给ninja的参数build.ninja里面的任务都可以。
1. gn里面的一个target都可以包括可执行程序动态库groupaction部件名
2. 如果直接指定名称报unkonw target的话可能是重名等原因按照gn的全名称指定{目标所在BUILD.gn的路径}:{目标名} 比如: `--build-target commonlibrary/c_utils/base:utils`
3. build-target参数一次可以指定多比如`--build-target A --build-target B`
4. subsystem_name不是编译目标
5. 部件名是一个特殊的目标根据ohos.build编译系统生产的gn目标如果直接指定部件名使用`--build-target {部件名}` 报错unkonw target可以使用一个部件的全名称指定`--build-target out/{device_name}/build_configs/{subsystem_name}/{part_name}:{part_name}`