# project **Repository Path**: Cooper0/project ## Basic Information - **Project Name**: project - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-03 - **Last Updated**: 2024-01-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简介 本仓库意在搭建一个工程管理框架。主要围绕以下几点进行框架设计: - 开箱即用 - 三方库的集成框架 - 自定义库的组件化集成 - 多实例的统一管理 # 快速使用 - 使用 `git clone --recursive` 下载工程及子模块到本地 - 进入 `application/demo` 执行 `make` 即可 - 在当前目录下的`bin`文件夹中会生成可执行文件 # 目录结构 ``` ├─.git ├─application │ ├─demo │ │ ├─bin │ │ ├─CMakeLists.txt │ │ ├─initial_cache.cmake │ │ ├─main.c │ │ └─Makefile │ └─CMakeLists.txt ├─component │ ├─demo_lib │ │ └─CMakeLists.txt │ └─CMakeLists.txt ├─script ├─third_party │ ├─cjson │ │ ├─cJSON │ │ └─CMakeLists.txt │ └─CMakeLists.txt ├─tool │ └─log └─CMakeLists.txt ``` # 应用实例下的Makefile的作用及使用 为了减少cmake命令的记忆使用,在实例目录下放置了一个Makefile问价进行工程的编译。 支持如下命令: - all: 缺损值。编译命令 - config_list: 打印所有的option - clean: 清理项目 - disclean: 删除项目编译的过程文件等 # 创建一个新的应用实例 假定创建一个名字为`demo2`的新应用。步骤如下: - 进入`application`文件夹 - 创建`demo2`文件夹 - 从`demo`文件夹中拷贝`CMakeLists.txt`、`Makefile`到`demo2`中 - 进入`demo2` - 创建`initial_cache.cmake`文件, 将需要打开的option在其中进行配置 - 创建代码文件 - 如果需要导入库文件等在`CMakeLists.txt`导入 - 完成上述步骤后即可编译 # 创建一个新的组件库 过程和创建新的应用实例类似,把模板更换成`component/demo_lib`. # 添加一个三方库 以cJSON为例添加一个三方库。 - 通过查看cJSON开源库发现支持cJSON编译 - 创建`third_party/cjson/`文件夹 - 使用`git submodule add https://gitee.com/lxzstudy/cJSON.git third_party/cjson/cJSON` 添加cJSON仓库。(这个仓是gittee上的一个镜像仓) - 进入`third_party/cjson/`, 创建`CMakeLists.txt` - 在`CMakeLists.txt`中添加option,控制cJSON的编译,并设置CJSON库中的option,添加cJSON为子目录 - 在`script/add_option.cmake`中添加使用cJSON时添加头文件的搜索路径 # 写在最后 欢迎大家和我一起共建该框架。添加更多的三方库。 需要注意的是在添加库时尽量使用`git submodule`导入库,并且用http、https的方式,不要用ssh的方式