C/C++ 第三方的依赖管理怎么做啊?

2025 年 11 月 26 日
 huyangq

如题,c/c++的依赖管理怎么弄啊,对了,假如还考虑 windows 和 linux2 个平台。 其他的语言感觉都很方便啊

比如 java 就简单,maven 就行,就是在 pom.xml 加上就行

rust 有 cargo + crate.io 执行 cargo add xxx 就可以

python 现在用 uv uv add xxx 就可以

js npm add xxx 就可以

但是 c/cpp 怎么弄啊?

2696 次点击
所在节点    程序员
18 条回复
chtcrack
2025 年 11 月 26 日
windows 下有 vcpkg 管理,linux 下就不知道啦,因为没用 linux 编程.
xtreme1
2025 年 11 月 26 日
Linux 下也有 vcpkg.
qieqie
2025 年 11 月 26 日
纯源码依赖的直接 git submodule ,或者直接复制一份
有二进制的更麻烦一点,还要考虑如何链接,安装 prebuilt 可以用系统的,不太纠结版本的 apt yum brew 安装就好了,或在 cmake 里 FetchContent ,
最后就是第三方的包管理器,conan vcpkg 啥的
sagnitude
2025 年 11 月 26 日
自己写 cmake ,和各种 findxxx.cmake ,再祈祷用到的库都能在开发机器上简简单单的 make install ,做成 git submodule 然后 cmake 调用

这是个很烦人的活,但现在这种 dirty work 可以给 ai 生成

[img]https://imgur.com/a/chPpz89[/img]

[img]https://imgur.com/a/LBx0dnd[/img]
momo1999
2025 年 11 月 26 日
我用 xmake ,还不够就加上 vcpkg 。
xFrye
2025 年 11 月 26 日
可以试试 v 友出品的 xmake
realwxg
2025 年 11 月 26 日
lixile
2025 年 11 月 26 日
工具有 好用且全面的中心库 无
自己维护内源 conan 在对应平台 编译(包括编译选项控制和编译调优) 然后上传来使用
Thymolblue
2025 年 11 月 26 日
尽量使用 CMake 的第三方库,因为 findxxx 会很方便,手搓个脚本来执行这些库的跨平台编译(通常只需要 CMake 预处理和编译这两个步骤)。Windows 上兼容性比较好通常不需要再细分版本重新编译。Linux 平台就用 Dockerfile 之类的起目标平台容器来维护依赖。
lcsoft
2025 年 11 月 26 日
可以试试 xmake
shylockhg
2025 年 11 月 26 日
把所有 lib 放一个 cmake 工程用 external project 管理,编译安装 tar 打包,根据 libc 版本,区分不同 tar 包
shylockhg
2025 年 11 月 26 日
win 和 linux 就继续区分不同 tar 包就行
wzhy
2025 年 11 月 26 日
xmake 解君忧!
daokedao
2025 年 11 月 27 日
CMake + vcpkg
dosmlp
2025 年 11 月 27 日
vcpkg 或者纯源码
henix
2025 年 11 月 27 日
如果给公司写那就用业界标准 cmake 。说个我自己的邪修方案:MSVC 就写个 bash 脚本下载依赖、编译,且全静态链接(系统 C 库动态链接)。Linux gcc 直接用系统包管理如 apt 且全动态链接。
其实 C/C++ 依赖也可以说很简单,全用系统包管理器 + pkg-config 生成编译器选项就行,这就要求你在 Windows 上使用 msys2 + gcc
labubu
2025 年 11 月 27 日
自己用 vcpkg
kero991
2025 年 11 月 28 日
其实 c++最大的问题是必须编译,vcpkg 也是要编译的,因为在 Linux ,基础库是不通用且不向后兼容的,要保证本机能用一般都得本机编译。包版本工具只是省去了手动编译而已。可不像 Java 等有预编译包

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1175178

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX