OpenHarmony开发者论坛
标题:
如何编译指定模块
[打印本页]
作者:
netants999
时间:
2024-6-21 17:28
标题:
dayu200烧录失败无法开机,求救
dayu200烧录失败无法开机,求救
开机屏幕已经不亮了
作者:
深开鸿_徐仕强
时间:
2024-6-21 17:56
以rk3568为例,
./build.sh --product-name rk3568 --no-prebuilt-sdk --build-target XXX --deps-guard=false
./prebuilts/build-tools/linux-x86/bin/ninja -C out/rk3568 / XXX -j12 -w dupbuild=warn
XXX就是你要编译的模块
作者:
lakewater
时间:
2024-6-24 10:53
贴一个本地编译的技巧,希望有些帮助:
1、安装ccache:用来缓存编译过的.o文件等
export CCACHE_NOHASHDIR="true" && export CCACHE_SLOPPINESS="include_file_ctime" :设置ccache在做hash的时候不hash路径、不检查文 件的change time
2、--fast-rebuild:直接从ninja开始编译,跳过前面的产品配置解析和gn解析,需要在不修改gn的时候可以使用
3、--gn-args enable_notice_collection=false:取消收集开源notice的过程,建议加上
4、--disable-package-image:取消最后的image压缩成tar包的动作
5、--build-only-gn:重新执行Preloader、loader、gn,不进行最后的编译动作
6、--build-target:可以单独指定某个编译目标,在out/rk3568下面执行ninja -t targets | grep "xxx"
7、--gn-args enable_lto_O0=true:在链接的时候会减弱优化的等级,建议在只考虑编译是否成功的时候使用(会影响最后的so的性能和rom大小)
8、--gn-args archive_ndk=false:编译sdk的时候不执行输出压缩包的动作
9、尽量不删除out,走增量编译
10、export NO_DEVTOOL=1 && ./build.sh xxx: 取消webpack打包过程中生成sourcemap的动作
11、--disable-post-build:取消Postbuild过程,最后的ninja trace解析、每个子系统的的rom size统计等动作会没有
12、--gn-args skip_generate_module_list_file=true:跳过为test 生成记录文件的过程,节省gn解析的过程,只要不跑tdd测试用例,这个参数都可以加上,编译tdd用例也没关系
13、在不编译image的时候:-T packages --gn-args skip_gen_module_info=true,去掉gn阶段module info的生成
14、在不编译test用例的时候可以加上--load-test-config=false,来去掉gn阶段test相关编译目标的解析
15、在不修改编译目标的external_deps且out输出目录不删除的情况,可以尝试使用--gn-args ohos_skip_parse_external_deps=true来缩短增量构建的gn解析时间
16、--build-only-load:重新执行Preloader、loader,不进行最后的gn, ninja动作
作者:
shihao-y
时间:
2024-8-8 14:26
回复
深开鸿_徐仕强
: 你好,请问一下“build-target”一般需要怎么选择?举例来说,如果我修改了//foundation/communication/dsoftbus/sdk路径下的部分代码,我怎么确定自己需要重新编译的部分是什么呢?
作者:
shihao-y
时间:
2024-8-13 17:56
回复
shihao-y
: 自问自答一下吧。
参考该文章
https://forums.openharmony.cn/fo ... &extra=page%3D2
中的内容,可以知道一般是去BUILD.gn文件中寻找。
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5