【发布时间】:2010-10-07 02:58:54
【问题描述】:
我有一个跨平台的 C++ 项目。在这个项目中,我们使用了几个第三方静态编译的库,这些库非常庞大且不易构建。
目前,我们的源代码树如下所示:
|
+-3rdparty
| +-include (initially empty)
| +-lib (initially empty)
| +-some-library
| +-another-library
|
+-source
查看代码时,开发人员首先会构建并安装“some-library”和“another-library”。安装步骤会将正确的文件放入 include 和 lib 文件夹中,然后它们可以构建我们的项目。
为了使我们的项目更容易构建,我正在考虑删除“some-library”和“another-library”,而只是将包含和预编译的二进制文件放入 include 和 lib 文件夹中。这样一来,新开发人员只需检查项目并立即构建它。
我的问题是:
这样做是不好的做法吗? (即:将预编译的库包含到您的源代码树中)。
此设置可能会产生哪些潜在问题/缺点?
您建议采用何种文件夹组织来考虑多个平台(Windows、Mac OSX 和 Linux)?
补充说明:我们正在使用 Mercurial。
【问题讨论】:
标签: version-control libraries code-organization