# HM-build-C-Cpp **Repository Path**: wang-yijia_DB/hm-build-c-cpp ## Basic Information - **Project Name**: HM-build-C-Cpp - **Description**: 于我们学校软件学院王莹老师团队中所作的,一份如何向鸿蒙移植c/cpp库的指南。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-10-19 - **Last Updated**: 2024-10-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HM-Build-C/C++-Program @Author: Wang Yijia (abcd1234) @Email: abcd1234dbren@yeah.net 这是一篇关于“如何为鸿蒙贡献移植后的 C/C++程序”的指导性文章。主要介绍了如何编译各种 C/C++程序,并进一步测试,之后提交到鸿蒙社区。 ## 目录 - [HM-Build-C/C++-Program](#hm-build-cc-program) - [目录](#目录) - [收集三方库](#收集三方库) - [编译三方库](#编译三方库) - [\> Makefile](#-makefile) - [\> CMake](#-cmake) - [大体执行流程](#大体执行流程) - [本地构建](#本地构建) - [\> Configure 工具链](#-configure-工具链) - [大体执行流程](#大体执行流程-1) - [本地构建](#本地构建-1) - [测试三方库](#测试三方库) - [按格式准备三方库的构建脚本](#按格式准备三方库的构建脚本) - [提交到鸿蒙社区](#提交到鸿蒙社区) ## 收集三方库 TODO 是的,这部分被鸽了,后续如果有机会,会进一步完善。 ## 编译三方库 ### > Makefile TODO ### > CMake #### 大体执行流程 ```plaintext * 源代码 * 使用 CMake 工具,生成 Makefile (直接打命令:cmake) * 依据 Makefile,执行 gcc 编译 (make) * gcc 作用于于源文件 * 得到可执行文件 ``` #### 本地构建 1. 看官方文档,看是否有 cmake 的使用说明 2. 如果官方有,则跟着教程来 3. 如果官方没有,看项目目录里有没有 `CMakeLists.txt` 文件 4. 如果有,则**一般情况下** `cmake`,之后 `make` 即可 ### > Configure 工具链 #### 大体执行流程 ```plaintext * 源代码 * 使用 autoscan 工具,生成 configure.scan * 依据 configure.scan,稍作修改后,改名为 configure.ac * 使用 aclocal 工具,作用于 configure.ac,生成 aclocal.m4 * 使用 autoconf 工具,生成 configure 脚本,下面分支 为 configure 脚本的工作内容 |\ | * automake 工具,作用于 makefile.am,生成 makefile.in | * autoconf 工具,作用于 makefile.in,生成 makefile |/ * 依据 makefile,执行 gcc 编译 (make) * gcc 作用于于源文件 * 得到可执行文件 ``` 相关教程过于杂乱,我学习的时间也比较的有限,此流程是我自己整理的。如果后续发现流程有问题,可以随时提出。 #### 本地构建 可以依据上述流程,查看当前目录下有什么。`configure` 脚本是脱离 `auto 工具链` 的依赖的,也就是说它可以独立运行。然后就是,此目录下,没有什么内容,就用对应的工具生成对应的文件,最后在 `configure` 命令执行完后,再执行 `make` 即可。 ## 测试三方库 我的语法糖: ```bash find . -name '*.c*' | xargs grep "test" ``` 在官方文档没有提及怎么测试的情况下,一般通过上面的语法糖,可以找到(可能的)测试项,然后,去读源码,尝试找到测试项的入口,然后执行测试项,看是否通过。 之后,记录你怎么进行的测试,形成 shell 脚本后,填写到构建脚本里即可。 ## 按格式准备三方库的构建脚本 TODO 还没做呢 ## 提交到鸿蒙社区 TODO 等后续吧