长话短说:项目现在使用 CMake,第三方库也同样是 CMake 的,目前在 CMakeList.txt 中使用 FetchContent 从 Github 上拉取源码后add_subdirectory
来安装依赖。暂时一切 OK,只是 Github 连接不畅,每次要浪费长一点的时间安装依赖。直到今天尝试上了 CI,每次运行 CI 都要重新拉依赖,而且还要拉两次(因为有 amd64 和 arm 两个架构),就将这个问题放大了。
可能的解决途径:
提前编译依赖成 so,安装库到系统中
因为最终软件是要部署在嵌入式设备上的,这么做太繁琐,个人更偏向于使用第三方库的源码在编译时与程序一起静态编译。
继续目前的配置,在代理 /反代 Github
是个办法,但是感觉不是很好,有点野路子的感觉。而且 CI 在容器里不太好代理
将相关依赖的编译结果缓存
这是目前个人觉得最靠谱的办法,而且 Travis CI 的文档也是建议将依赖安装的部分提取出来(make get-deps
)。但是在 CMake 里好像不太好做到?而且依赖编译完也不是像 node 在一个独立的目录中,不太好设置缓存。
研究了一下午焦头烂额,只得向大家求救了!
(以前使用其他语言的时候,一句composer install
或者npm install
就解决了的事情,没想到在 C++这竟如此复杂,要是有类似的工具能统一起来多好)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.