V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Cryse
V2EX  ›  问与答

请教一下跨平台 C++ 项目关于 lib 和 dll 的问题

  •  
  •   Cryse · 2020-02-17 00:35:44 +08:00 · 1324 次点击
    这是一个创建于 1753 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Windows 没有 /usr/lib/usr/local/lib 这样的目录,那么 Windows 下引用的 lib 和 dll 是否该一起提交到 git?

    还是说通过环境变量在 CMake 中引用呢?

    6 条回复    2020-02-17 23:23:26 +08:00
    BrettD
        1
    BrettD  
       2020-02-17 00:45:07 +08:00 via iPhone
    用 cmake
    tigerstudent
        2
    tigerstudent  
       2020-02-17 00:47:44 +08:00 via Android
    我是把 Linux 和 Windows 下依赖的第三方库都放代码目录,一起提交。
    然后 cmake 通过环境变量引用。
    ysc3839
        3
    ysc3839  
       2020-02-17 05:01:00 +08:00 via Android
    正常情况不应该把编译好的 binary 随代码一起提交的。
    我自己的项目如果要依赖需要编译的第三方库,我会优先选择用 cmake 自动编译,或者用 vcpkg 等包管理工具,其次选择让用户手动编译,最后才选提交个编译好的 binary。
    coderluan
        4
    coderluan  
       2020-02-17 11:18:55 +08:00
    肯定是不推荐提交的,否则仓库体积太大,clone 啥的很麻烦,具体方法很多,看你引用库的情况,开源的可以引入子库一起编译,常见的库可以用 Cmake Package,特殊的写个脚本下载也行。
    Cryse
        5
    Cryse  
    OP
       2020-02-17 21:00:45 +08:00
    @ysc3839
    试了下 vckpg, 感觉还不错,不过一部分库还是省不了 FindXXX.cmake

    @coderluan
    关于直接引入开源库,有个关于协议的疑问,开源库是 LGPL v2.1 的,如果我包含了他的源代码,但是仍然用 shared library 的方式链接,那么算是符合协议吗?
    coderluan
        6
    coderluan  
       2020-02-17 23:23:26 +08:00
    @Cryse 没问题,LGPL 动态库引用是可以闭源发布商业软件的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5885 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:21 · PVG 10:21 · LAX 18:21 · JFK 21:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.