c++ - cmake 是否使用约定优于配置?

标签 c++ maven cmake convention-over-configur

Maven is said to使用 Convention over Configuration 的形式.

我不想做任何错误的比较,但据我所知cmake可以为 C++ 项目填写类似于 maven 为 Java 项目填写的名单。

那么, cmake 是否有一些关于配置的约定,或者每个项目的配置都是唯一的? (Wrt. 文件布局、测试布局、构建输出等)

最佳答案

在体验了Maven 3的优雅之后,我也找了一个convention over configuration C maven风格的系统。 ...

我还检查了 CMAKE,在创建骨架后,有几件事很突出。

  1. CMAKE 有时是声明性的,有时是程序性的,您总是会以丑陋的混合告终。又名,它是 C 的 ANT,没有括号。

  2. CMAKE 本身是可移植的,可惜您的项目需要处理平台细节,您最好提前了解它们。 CMAKE 模块的存在据说可以帮助解决这个问题,不幸的是,它们的可重用性似乎更像是 Ansible 角色的 promise ……理论上是可能的,但在实践中,它们最终成为组织所有所需复杂性的体面方式。

换句话说,CMAKE 与 Maven 完全不同。它更像是一个较低级别的 ANT,它允许您使用“跨平台”DSL 来生成特定于平台的 makefile。

关于c++ - cmake 是否使用约定优于配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7826239/

相关文章:

shell - make 失败无法停止 shell 脚本

c++ - C++0x 是否支持 __stdcall 或 extern "C"capture-nothing lambdas?

c++ - 在 std::vector 中删除、调试、发布

java - 在本地maven仓库安装jar成功,但还是找不到

python - 使用 Python 3 支持构建 OpenCV

c++ - 使用 target_link_libraries 链接通过 conan-package 可用的库时出错。手动链接时,它有效

android - 大型 Qt 外部二进制资源文件

c++ - 跟踪 QTreeView/QStandardItem 上的对象的正确方法是什么

java - 适用于 Java EE 和 hibernate 的 Maven Artifact

java - 无法通过intellij运行配置直接运行 cucumber 功能