【问题标题】:What is the benefit of building with CMake?使用 CMake 构建有什么好处?
【发布时间】:2016-07-08 13:58:18
【问题描述】:

我正在研究 SFML,我很好奇我可以自己编译它的选项。我在教程中找到了它,但从第一行开始我就感到困惑:

CMake 是一个开源元构建系统。它不是构建 SFML,而是构建构建 SFML 的内容:Visual Studio 解决方案...

  1. Visual Studio 中也有一个构建选项,该构建和 CMake 构建有什么区别吗?

  2. 它构建了什么构建了 SFML 是什么意思?意思是库文件?

  3. Visual Studio 解决方案?这是什么意思?据我所知,当我打开一个新项目时,它在一个解决方案中,我可以向这个解决方案添加新项目(我很困惑为什么一个解决方案中必须有多个项目!)。

CMake 构建解决方案意味着什么?它是干什么用的?

【问题讨论】:

    标签: visual-studio cmake


    【解决方案1】:
    1. 有源代码。人们想要编译它。在终端中输入编译命令既困难又烦人。

    2. 人们发明了构建系统,以使 1.) 更容易。例如制作文件或 Visual Studio 在其文件中集成和存储的内容,称为解决方案。

    3. 有些项目是跨平台的。他们可以提供make文件、解决方案文件、Xcode、Eclipse等文件。这变得困难和烦人。

    4. 人们发明系统,创建构建系统来缓解 3.)。从一组通用文件中,可以控制几个不同的构建系统。

    在您的实际情况下:CMake 创建解决方案文件,您可以打开解决方案文件并使用它构建 SFML。

    【讨论】:

    • 我认为这个答案比上面的答案复杂得多。我正在学习 c++ 3 年,但老实说,我从未遇到过任何这些概念和名称。你认为有什么我错过了学习吗?我希望我现在打字没问题。;)
    • 不容易,要精髓。三年的 C++,取决于你所做的项目。跨平台并针对一系列编译器版本?还是只是单一操作系统、IDE 和编译器的固定组合?
    • 否,固定编译器,单一操作系统和IDE和编译器。我想开发游戏,我正在为一个项目工作五个月。
    • 当然,那么 CMake 对您毫无意义。吞下去吧,其他项目需要元构建系统。
    • 保留您的配置。但是要编译和使用 SFML,你必须使用 CMake。构建 SFML 后,请坚持使用您喜欢的方式。
    【解决方案2】:

    CMake 是一款出色的跨平台开发工具,无需维护单独的构建实用程序。在 Windows 上,CMake 可以基于其 CMakeLists.txt 文件创建 Visual Studio 解决方案文件。在 Linux 上,通常 CMake 会输出一个 makefile。 CMake 与许多构建工具兼容,我建议您阅读他们网站上的更多文档以获取更多信息。

    编辑:只是为了更清楚。 CMake 确实构建了构建 SFML 的内容,因为它创建了用于构建 SFML 的 Visual Studio 解决方案。

    1. 在 VS 中构建解决方案就是构建库本身。 CMake 构建会生成用于构建库的 VS 解决方案。

    2. 见 1。

    3. VS 解决方案是包含 1 个或多个项目的完整可构建设置。解决方案可以包含多个项目,因为 VS 限制每个项目只有 1 个输出。如果您想要多个输出(例如 4 个 dll),每个输出都需要它自己的项目。

    【讨论】:

    • 这很令人困惑,我们在 IDE 中编写代码,然后我们使用构建,一切都完成了!那么 SFML 是如何编写的,它必须有 cmake 才能为其构建 sloution 呢?
    • 如果可能的话,请一一回答我的问题,我真的很困惑,我读过cmake很棒,它输出make file,但不幸的是我不知道意思......谢谢
    • @shayan SFML 的编写方式与任何其他代码库的编写方式相同。 CMake 只是一个实用程序,可以更简单地生成解决方案。对于 SFML 这样的库,人们一般都是下载库的源代码,然后自己构建。如果开发人员需要在他们的库中包含 VS 2010、VS 2012、VS 2015 解决方案、MinGW 构建文件以及在 Linux 上配置/生成文件,那么对于开发人员来说,这是一个维护难题,这样人们就可以在他们想要的任何系统上构建 DL他们可用的工具。 CMake 可以使用它的元构建文件生成所有这些。
    • @shayan 所以步骤是:CMake Build -> SMFL.sln 的输出 -> 在 VS 中打开 sln 文件 -> 在 VS 中构建
    • @shayan 不是每个人都使用 Visual Studio,甚至在 Windows 上也不是。很高兴能够在 CMake 中编写一组构建规则,这些规则将与 Windows、Linux、Mac 和更多操作系统上的 Visual Studio、Clang、GCC 和其他编译器一起使用,并利用诸如 make、ninja 等构建系统.必须手动编写所有这些构建文件会很痛苦。
    猜你喜欢
    • 2012-09-17
    • 1970-01-01
    • 2016-12-19
    • 2019-05-03
    • 2016-03-28
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 2012-11-28
    相关资源
    最近更新 更多