为什么我们需要CMake? [英] Why do we need cmake?

查看:34
本文介绍了为什么我们需要CMake?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不明白,为什么我们需要cmake来构建库?如果我的问题很愚蠢,我很抱歉,但我需要在Widnows上使用一些库,无论我选择什么库,我都需要用cmake来构建和/或编译它。它是用来做什么的?为什么我不能只#将我需要的东西包含到我的项目中,这样它就可以与我的项目同时编译/生成?

此外,有时我需要安装Ruby、Perl、Python所有这些特定版本,以便cmake可以构建库……我为什么需要这些程序,我是只在构建库时才需要它们,还是在以后的项目中也需要它们?(具体来说,我可以在构建库后卸载这些程序吗?)

推荐答案

目前在不同平台上用C++构建东西很混乱。

有几种不同的构建系统,没有标准的方法可以做到这一点。仅提供一个Visual Studio解决方案对在Linux或Mac上进行编译没有帮助。

如果添加用于Linux或Mac的Makefile,则需要在解决方案和Makefile之间重复配置。这可能会导致大量的维护开销。此外,与现有的新工具相比,Make文件并不是一个很好的构建工具。

您只有CMake库,这在很大程度上是巧合。然而,CMake目前是一个流行的选择。

有几种解决方案可以统一构建。CMake是一种特殊的构建工具。它可以创建生成文件并生成它们,但如果您愿意,也可以告诉cmake创建一个Visual Studio解决方案。

外部程序也是如此。它们是您所使用的库的维护者的选择,并且没有代码生成等方面的标准。

虽然CMake可能不是解决方案(尽管即将到来的Visual Studio 2015集成了对CMake的支持),但对于那些跨平台的构建系统来说,趋势正越来越多地朝着这个方向发展。


对于您的问题,为什么不能只包括页眉:

很少有库仅是头文件,需要编译。您可以获得预编译库/dll,然后只包含头文件+添加链接器路径。这在Linux中更容易,因为您可以拥有-dev包,它们只需通过包管理器安装一个预构建库和它的头文件。Windows本身没有此类功能。

或者您必须使用库使用的任何生成工具自己构建它。

这篇关于为什么我们需要CMake?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆