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