V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Cryse
V2EX  ›  问与答

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

  •  
  •   Cryse · Feb 17, 2020 · 1613 views
    This topic created in 2267 days ago, the information mentioned may be changed or developed.

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

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

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

    @coderluan
    关于直接引入开源库,有个关于协议的疑问,开源库是 LGPL v2.1 的,如果我包含了他的源代码,但是仍然用 shared library 的方式链接,那么算是符合协议吗?
    coderluan
        6
    coderluan  
       Feb 17, 2020
    @Cryse 没问题,LGPL 动态库引用是可以闭源发布商业软件的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2337 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 15:44 · PVG 23:44 · LAX 08:44 · JFK 11:44
    ♥ Do have faith in what you're doing.