V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
huyangq
V2EX  ›  程序员

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

  •  
  •   huyangq · 2 天前 · 1315 次点击

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