65,201
社区成员




各位大佬好!
小弟想请教一下在内网的开发环境如何管理C++的包, 欢迎大家知道指导交流意见。
我们要解决的C++包管理问题主要有几个:
1. 跨平台 (主要是linux+windows)
2. 预编译库 (减少CI时间)
3. 源码信息修改(内网无法访问github, 也没有代理, 需要将代码也在内网克隆一份并给出支持源码构建
我现在考虑用Conan2 或者 vcpkg, 理论上两者都能实现目的, 但是到底走哪条线路在内网部署维护更好, 能够解决我的问题, 我需要一些意见参考, 欢迎大家赐教!
首先,你提出的这三个需求——跨平台兼容、预编译库的使用、以及源码信息的本地化处理,确实是内网开发环境下常见的挑战。Conan和vcpkg作为两个流行的包管理工具,确实都有可能成为解决你问题的好帮手。
跨平台兼容:Conan和vcpkg都支持跨平台,但Conan在这方面的表现可能会更加出色。Conan提供了更丰富的设置选项来处理不同平台和编译器的特定需求。
预编译库的使用:这方面Conan和vcpkg都能很好地支持。不过,Conan的二进制管理方式可能在CI流程中更加高效,因为它允许你更灵活地管理和分发不同配置下的二进制文件。
源码信息的本地化:由于你的内网环境无法直接访问外部资源,像GitHub这样的公共仓库就不可用。这种情况下,Conan和vcpkg都允许你搭建本地的包仓库。Conan的Artifactory或者vcpkg的私有Git仓库都可以满足你的需求。
综合考虑,Conan可能是更适合你的选择。它在跨平台支持和预编译库管理方面都表现出色,而且它的灵活性和可配置性在处理复杂的内网环境时可能会更有优势。同时,你可以设置本地的Conan仓库来管理源码和二进制文件,以适应内网的限制。
当然,选择哪个工具也需要考虑你和你的团队的熟悉程度以及现有环境的适应性。建议你可以先在小范围内尝试一下,看看哪个工具更适合你们的工作流程。