【发布时间】:2013-11-04 15:56:29
【问题描述】:
我目前正在尝试在 C++ 中设置一个项目,b 使用 luabind 库。不幸的是,在我的发行版 Arch 上,这个库不在官方 repos 中,而且 AUR 中的库已经过时并且无法编译。
考虑到我只需要这个项目的库,我认为我可以通过构建库然后在我的项目的 2 个子目录中安装(复制)包含文件和生成的二进制文件来创建类似于 python 的 virtualenv 的沙盒环境include 和 lib,我将分别添加到链接中并在构建时包含路径。我理解为什么将库与您的项目一起分发是不好的:例如同时进行安全性和错误修复。然而,分发 DLL 几乎普遍在 Windows 上完成(如果我交叉编译我可能会这样做),并且许多项目(如 Linux 上的游戏)倾向于打包它们的库以避免 disrtos 之间的不一致。此外,如果需要一个 lib 的补丁或分叉版本,我怀疑我永远不会在任何官方 repo 中找到它。
所以我的问题是:
- 我上面描述的是一种常见的做法吗?我应该这样做吗?
- 如果不是,这个问题最普遍认可的解决方案是什么?
注意:如果重要的话,我使用 Cmake 进行构建自动化
编辑: This question 与我的略有重叠。
【问题讨论】:
标签: c++ libraries build-dependencies