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

20 天前
 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 怎么弄啊?

1827 次点击
所在节点    程序员
18 条回复
chtcrack
20 天前
windows 下有 vcpkg 管理,linux 下就不知道啦,因为没用 linux 编程.
xtreme1
20 天前
Linux 下也有 vcpkg.
qieqie
20 天前
纯源码依赖的直接 git submodule ,或者直接复制一份
有二进制的更麻烦一点,还要考虑如何链接,安装 prebuilt 可以用系统的,不太纠结版本的 apt yum brew 安装就好了,或在 cmake 里 FetchContent ,
最后就是第三方的包管理器,conan vcpkg 啥的
sagnitude
20 天前
自己写 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
20 天前
我用 xmake ,还不够就加上 vcpkg 。
xFrye
20 天前
可以试试 v 友出品的 xmake
realwxg
20 天前
lixile
20 天前
工具有 好用且全面的中心库 无
自己维护内源 conan 在对应平台 编译(包括编译选项控制和编译调优) 然后上传来使用
Thymolblue
20 天前
尽量使用 CMake 的第三方库,因为 findxxx 会很方便,手搓个脚本来执行这些库的跨平台编译(通常只需要 CMake 预处理和编译这两个步骤)。Windows 上兼容性比较好通常不需要再细分版本重新编译。Linux 平台就用 Dockerfile 之类的起目标平台容器来维护依赖。
lcsoft
20 天前
可以试试 xmake
shylockhg
20 天前
把所有 lib 放一个 cmake 工程用 external project 管理,编译安装 tar 打包,根据 libc 版本,区分不同 tar 包
shylockhg
20 天前
win 和 linux 就继续区分不同 tar 包就行
wzhy
20 天前
xmake 解君忧!
daokedao
19 天前
CMake + vcpkg
dosmlp
19 天前
vcpkg 或者纯源码
henix
19 天前
如果给公司写那就用业界标准 cmake 。说个我自己的邪修方案:MSVC 就写个 bash 脚本下载依赖、编译,且全静态链接(系统 C 库动态链接)。Linux gcc 直接用系统包管理如 apt 且全动态链接。
其实 C/C++ 依赖也可以说很简单,全用系统包管理器 + pkg-config 生成编译器选项就行,这就要求你在 Windows 上使用 msys2 + gcc
labubu
19 天前
自己用 vcpkg
kero991
18 天前
其实 c++最大的问题是必须编译,vcpkg 也是要编译的,因为在 Linux ,基础库是不通用且不向后兼容的,要保证本机能用一般都得本机编译。包版本工具只是省去了手动编译而已。可不像 Java 等有预编译包

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

https://ex.noerr.eu.org/t/1175178

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

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

© 2021 V2EX