我不明白,为什么我们需要cmake来构建库?我很抱歉,如果我的问题是愚蠢的,但我需要在Widnows上使用一些库,我选择的库我需要构建它和/或用cmake编译它。它是什么?为什么我只能#include“路径”我需要的东西进入我的项目,而不是它可以与我的项目同时编译/构建?
而且,有时我需要安装Ruby,Perl,Python,所有这些都是一些特定的版本,所以cmake可以构建库...为什么我需要这些程序,我只需要它们来构建库或以后在我的项目呢? (具体可以在构建库后卸载这些程序吗?)
答案 0 :(得分:3)
目前在不同平台上用c ++构建东西是一团糟。
有几种不同的构建系统,没有标准的方法可以做到这一点。只提供一个可视化的工作室解决方案,无法帮助在linux或Mac上进行编译。
如果为linux或mac添加makefile,则需要在解决方案和makefile之间重复配置。这可能导致大量维护开销。与新的文件相比,makefile并不是一个好的构建工具。
你只有CMake库大多是巧合。 CMake目前是一个受欢迎的选择。
有几种解决方案可以统一构建。 CMake是一种特殊的构建工具。它可以创建makefile并构建它们,但如果你愿意,你也可以告诉cmake创建一个visual studio解决方案。
外部程序也是如此。它们是您使用的库的维护者的选择,并且没有代码生成等标准。
虽然CMake可能不是“解决方案”(尽管即将推出的Visual Studio 2015正在整合cmake支持),但这些跨平台构建系统的趋势正朝着这个方向发展。
您的问题为什么不能只包含标题:
很少有库只是标题,需要编译。您可以获得预编译的libs / dll,只需包含标头+添加链接器路径。这在linux中比较容易,因为你可以拥有-dev
个软件包,只需要通过软件包管理器安装预构建库和它的头文件。 Windows本身没有这样的东西。
或者您必须使用库使用的任何构建工具自行构建它。