Github submodule实用性的一些问题(CC++)

2026-04-29 08:131阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

感觉其实是C++才会出现的问题。情景如下:

MemoryManager作为一个单独的模块,为整个项目服务。但是其依赖于json库,为日志导出提供服务。然而另一个模块,比如是EntityManager,要依赖于MemoryManager,但是同时也依赖于json,那么这个时候json库到底该怎么办?
是作为MemoryManager的submodule吗?还是作为整个大项目的submodule?
就很难搞。

之前我看过skia(高级渲染api),他们采用的方式好像是自己有一套依赖管理(具体我忘了)所以不存在这个问题。
cmake也提供了下载依赖的方式不过我其实并不太喜欢这样。目前采用的方案就是cmake自动探测target,如果有就不再引入依赖,如果没有就cmake下载。不过这样其实也并不是很优雅,因为不太对称,这要求项目中只能有一个库包含了某个子模块,而其他库只能探测,或者cmake依赖而不是submodule。就很不优雅。
思来想去或许最优雅的方式就是python写个脚本来管理?
我觉得submodule最大的问题就是没法做到同项目submodule依赖的传播。但是我又很想用因为看到仓库里有那个小箭头链接有点爽。
大家有没有更棒的处理办法?

网友解答:
--【壹】--:

我试过,还带了交叉编译的功能,但我真写不来zig,没办法直接用,不是很舒服的方案


--【贰】--:

是,所以才说是只存在于C/C++的问题呀


--【叁】--:

不是有vcpkg么,我没高强度用,不过应该还可以吧
cmake+项目级的vcpkg


--【肆】--:

vcpkg也结决不了这种问题呀。

阅读全文
标签:软件开发
问题描述:

感觉其实是C++才会出现的问题。情景如下:

MemoryManager作为一个单独的模块,为整个项目服务。但是其依赖于json库,为日志导出提供服务。然而另一个模块,比如是EntityManager,要依赖于MemoryManager,但是同时也依赖于json,那么这个时候json库到底该怎么办?
是作为MemoryManager的submodule吗?还是作为整个大项目的submodule?
就很难搞。

之前我看过skia(高级渲染api),他们采用的方式好像是自己有一套依赖管理(具体我忘了)所以不存在这个问题。
cmake也提供了下载依赖的方式不过我其实并不太喜欢这样。目前采用的方案就是cmake自动探测target,如果有就不再引入依赖,如果没有就cmake下载。不过这样其实也并不是很优雅,因为不太对称,这要求项目中只能有一个库包含了某个子模块,而其他库只能探测,或者cmake依赖而不是submodule。就很不优雅。
思来想去或许最优雅的方式就是python写个脚本来管理?
我觉得submodule最大的问题就是没法做到同项目submodule依赖的传播。但是我又很想用因为看到仓库里有那个小箭头链接有点爽。
大家有没有更棒的处理办法?

网友解答:
--【壹】--:

我试过,还带了交叉编译的功能,但我真写不来zig,没办法直接用,不是很舒服的方案


--【贰】--:

是,所以才说是只存在于C/C++的问题呀


--【叁】--:

不是有vcpkg么,我没高强度用,不过应该还可以吧
cmake+项目级的vcpkg


--【肆】--:

vcpkg也结决不了这种问题呀。

阅读全文
标签:软件开发