• 请不要在回答技术问题时复制粘贴 AI 生成的内容
huyangq
V2EX  ›  程序员

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

  •  
  •   huyangq · Nov 26, 2025 · 3359 views
    This topic created in 344 days ago, the information mentioned may be changed or developed.

    如题,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 怎么弄啊?

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