# 编译测试案例 - [简介] - [目录] - [约束与限制] - [说明] - [相关问题说明] ## 简介 提供了一个基于cmake编译的框架,可编译不同平台的二进制文件 根据客户的需求,编译生成对应的可执行程序和库文件。其编译流程为: 1. 使用python脚本进行配置cmake编译的参数 2. python运行后会生成Makefile文件 3. 通过运行cmake --build .来执行编译的任务 ## 目录结构 ``` . ├── README.en.md ├── README.md ├── ndk-test │   ├── CMakeLists.txt # ndk-test通过cmake构建的起点 │   ├── build.py # 编译ndk-test的脚本 │   └── src ├── sanitize │   ├── CMakeLists.txt # sanitize通过cmake构建的起点 │   ├── asan │   ├── build.py # 编译sanitize的脚本 │   ├── cfi │   ├── fuzz │   ├── scudo │   └── ubsan ├── script # 编译放置的脚本 │   ├── __pycache__ │   ├── build.py # 编译的总脚本 │   ├── config_args.py # cmake编译需要的参数 │   ├── runtest-sanitize.sh │   ├── runtest.sh │   └── runtest_Windows.bat # 将编译生成的文件推送到板子上 └── target # 存放目标文件 └── README.md ``` ## 限制与约束 - 需要下载NDK或者通过openharmony编译生成 - 配置环境,详情请参照[gitee中的wiki文档](https://gitee.com/openharmony/third_party_musl/wikis/Home) ## 说明 1. 总目录下全量编译的编译命令 ``` python build.py ``` 2. 对应的编译目录可单独编译 ``` # 子目录sanitize python build.py # 子目录ndk-test python build.py ``` 3. 在板子上运行测试案例 ``` # 确定板子连接好电脑,运行脚本 runtest_Windows.bat ``` 4. 若以上步骤执行成功,脚本会产生一个REPORT和REPORT-SANITIZE文件,来分别记录ndk-test和sanitize测试案例运行的结果 ## 相关问题说明 **对于cmake参数CMAKE_TOOCHAIN_FILE** - 指向的是工具链文件所在的位置,对于编译不同平台二进制文件是很重要的,所以要给定正确的路径