我目前正在尝试使用 luabind 库在C ++中设置项目。不幸的是在我的发行版,即Arch,这个库不在官方的回购中,而AUR中的那个已经过时了,无法编译。
考虑到我只需要这个项目的库我认为我可以通过构建库然后在我的项目的2个子目录中安装(复制)包含文件和生成的二进制文件来创建类似于python的virtualenv的沙盒环境include
和lib
,我将分别添加到链接并在构建时包含路径。我理解为什么在您的项目中分发库是错误的:例如,安全性和错误修复。然而,分发DLL几乎普遍在Windows上完成(我可以在交叉编译时使用),许多项目(如Linux上的游戏)倾向于打包它们的库以避免disrtos之间的不一致。此外,如果需要修补或分叉版本的lib,我怀疑我会在任何官方回购中找到它。
所以我的问题是:
注意:我使用Cmake进行构建自动化,如果重要的话
编辑: This question与我的重叠。
答案 0 :(得分:3)
你的方法很有意思,但你没有必要设计一个有效的工作系统,因为它已经完成了,幸运的是,你离解决方案只有一步之遥!
使用CMake,使用ExternalProject模块可以轻松自动构建和链接外部源代码。
有关有用信息,请参阅http://www.kitware.com/media/html/BuildingExternalProjectsWithCMake2.8.html。
这种方法有几个优点: