跨平台C++ HD44780格式化库Git项目结构与Submodule使用疑难
项目结构与Git工作流问题
项目背景
我用CLion创建了一个Windows平台的C++ CMake项目,其中包含formatter/子目录,存放平台无关的装饰器类——作为HD44780 LCD(或Windows下的模拟器)与上层程序的中间层,实现跑马灯(marquee)、压缩小数(smashed decimals,用单个自定义字符渲染小数点+上标数字)等功能。
结构设计的核心诉求
- Windows下开发formatter库时,不想看到任何Arduino相关内容
- Arduino项目中使用该库时,不想出现Windows相关内容
- 主要在Windows下开发formatter库,但希望未来能在Windows项目或Arduino项目中编辑库文件
两种设想方案
方案一
- 创建带SFML的Windows C++项目并推送到GitHub
- 在GitHub创建独立的formatter仓库,将其作为submodule添加到Windows项目的
formatter/子目录 - 使用
git clone --recursive克隆项目进行后续开发 - 未来创建Arduino项目时,将该formatter仓库作为submodule添加到Arduino项目的
formatter/子目录
方案二
- 同方案一创建Windows C++项目
- 在项目内创建
formatter/子目录,存放平台无关类并完成初始开发 - 未来创建Arduino项目时,将Windows仓库的
formatter/子目录单独作为submodule添加到Arduino仓库
当前遇到的问题
我尝试了方案一,完成到第三步:用git clone --recursive克隆项目到新目录,在CLion中打开并在formatter/下创建了几个类。但使用SmartGit提交时弹出对话框,完全搞不懂整体含义和后续操作,也不确定要为哪个仓库创建分支、分支命名规则是什么。
核心操作需求
- 将Windows项目加载到CLion(formatter类来自独立的submodule仓库)
- 编辑并添加项目类(包括
formatter/下的文件) - 提交到本地仓库
- 推送到对应的GitHub远程仓库:
formatter/下的文件推送到独立的formatter仓库,其余文件推送到Windows项目仓库
更新(2022年7月20日)
因操作受挫,暂时断开了Windows项目中submodule的链接,把formatter/改成普通子目录以推进开发。
内容的提问来源于stack exchange,提问作者Bitbang3r
相关产品推荐
相关产品推荐

