【发布时间】:2013-01-10 17:06:27
【问题描述】:
C++ Buildsystem with ability to compile dependencies beforehand
Java 有 Maven,使用起来很愉快,只需指定已编译的依赖项,并存放到 Mavens 标准目录,这意味着依赖项的位置是标准化的,而不是经常使用的 C/C++ 依赖项拥有多个位置的方式(让我休息一下,就像任何人都记得特定部门的默认安装目录)。
对于每个单独的开发人员来说,这通常是非常低效的,他们必须经常查找、阅读、熟悉配置选项/构建,并最终为每个依赖项进行编译以简单地构建项目。
没有实施的理论原因是什么?
为什么很难用类似 maven 的声明格式提供以下选项的包?
version
platform (windows, linux)
src/dev/bin
shared/static
equivalent set of Boost ABI options when applicable
必须手动访问网站并在 2013 年搜索最古老的主要编程语言的依赖项是荒谬的。
【问题讨论】:
-
我认为您的问题实际上只是“C++ 是否有与 Maven 等价的东西?”...
-
我觉得更像是“很明显这个东西应该存在。它不存在。所以它不存在一定有很好的理由。那是什么原因?”
-
可能是因为 C++ ABI 太多了,而 Java(我认为)本质上指定了一个特定的 ABI? Debian 系统也有类似的功能,虽然只适用于 Linux。
-
我认为简短的回答是:没有理论上的原因。这只是(无论出于何种原因)没人做过的事情。
-
@villapx 是 - “apt-get source [package]” 会将包的源下载到当前目录;并且“apt-get build-dep [package]”将安装必要的工具、库、头文件等,这些都是通过“dpkg-buildpackage”从源代码构建包所需的。