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

2020-02-17 00:35:44 +08:00
 Cryse

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

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

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

@coderluan
关于直接引入开源库,有个关于协议的疑问,开源库是 LGPL v2.1 的,如果我包含了他的源代码,但是仍然用 shared library 的方式链接,那么算是符合协议吗?
coderluan
2020-02-17 23:23:26 +08:00
@Cryse 没问题,LGPL 动态库引用是可以闭源发布商业软件的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/645135

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX