【问题标题】:"CMakeLists.txt" seems to be missing“CMakeLists.txt”似乎不见了
【发布时间】:2018-06-04 12:50:13
【问题描述】:

我试图构建 SFML 以便开始用 c++ 开发 2d 游戏。我将源代码目录放在 C: 中(目录本身称为“SFML”)。在尝试使用 CMake 生成 .cbp 文件时,我遇到了一个错误:

“源目录“C:/SFML”似乎不包含 CMakeLists.txt”

似乎缺少 CMake 未创建的文件。 我使用的是Cmake 3.10.1,安装文件可以在https://cmake.org/download/中找到,标题为:“Windows win32-x86 Installer”

我尝试使用 Codeblocks 生成器 - MinGW makefile 构建 SFML 2.4.2。使用的代码块版本是:codeblocks-16.01mingw-setup.exe,在http://www.codeblocks.org/downloads/26

中找到

以前有没有人遇到过同样的问题并且知道如何克服它?如果不 - 是否有这个版本的已经构建好的、可以使用的库? (2.4.2)

如果没有……您知道可在 Visual Studio 2017 中使用的 SFML 版本吗?

还有一个问题(这是最后一个,我保证......) - 也许你可以向我推荐另一个用于开发 2d 游戏的 c++ 库?

编辑: 注意:我对所有这些建筑都是全新的

SFML 的收容措施: maybe it's the binary version?

lib 包含一些静态库,bin 包含一些 .dll s

【问题讨论】:

  • 如果CMakeLists.txt 不包含在项目中,那么您需要创建它。
  • CMakeLists.txt 是 cmake 的命令文件,它不会创建它。
  • 是什么让您认为该项目使用了 CMake?它可能正在使用其他一些构建系统(但是是的,它确实使用了 cmake)。另见:sfml-dev.org/faq.php#build-use
  • 如果CMakeLists.txt 不存在,则项目未配置为使用 CMake 构建。 (不要将CMakemake 混淆——它们是完全不同的东西。)
  • @JesperJuhl SFML 使用 CMake 作为其构建系统。脚本文件应该在那里,除非由于某种原因它不是完整的源存储库。

标签: c++ c cmake sfml 2d-games


【解决方案1】:

在使用 -S 命令行选项时,我在使用 cmake 3.10 版时遇到过这种情况。在 cmake 版本 3.15.4 上,它的行为符合预期 - 因此,如果您更新 cmake,那么它可能会正常工作。

请注意,3.13 版之前不支持 -S 命令行选项: https://cmake.org/cmake/help/v3.13/release/3.13.html#command-line

通常从项目根目录的“build”子目录调用 cmake,项目根目录包含 CMakelists.txt。所以你会创建一个“build”目录,切换到它,然后提交“cmake ..”。这将从项目根目录中拉入 CMakelists.txt,并使用您所在的“构建”子目录作为构建目录。我们说“构建”,它实际上是生成生成文件,然后可以由“本机”构建系统(例如“make”或 Visual Studio)使用来执行实际的编译和链接。这种安排并不总是很方便,因此引入了 -S 和 -B 命令行选项。

【讨论】:

    【解决方案2】:

    您可能下载了错误的东西或可能将 SFML 源提取到子文件夹或类似的东西中。

    既然您提到了 Visual Studio:SFML 与 Visual Studio 100% 兼容,您可以随时从源代码构建它,而不必担心依赖关系(存储库中包含的所有内容)。

    编译步骤非常简单。我建议您安装 Git 以从 SFML 存储库中克隆最新的源代码。此外,您还需要 CMake,显然您已经拥有了。

    • 打开命令提示符并将您的目录更改为C:\SFML
    • 使用 Git 克隆官方存储库:git clone https://github.com/SFML/SFML.git source(注意尾随。)
    • 等待源检出到source 子目录。
    • 创建一个名为build的新目录:md build && cd build
    • 现在调用 CMake,指向源目录并定义您的安装路径:cmake -DCMAKE_INSTALL_PREFIX=C:/SFML ../source
    • 构建并安装 SFML 的调试版本:cmake --build . --target install --config debug
    • 构建并安装 SFML 的发布版本:cmake --build . --target install --config release
    • 或者,您也可以只打开生成的 Visual Studio 解决方案并自行构建 INSTALL 项目。

    (您不必定义构建工具或任何东西;CMake 应该会注意到 Visual Studio 已安装并自动选择它。)

    【讨论】:

    猜你喜欢
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 2018-08-31
    • 1970-01-01
    相关资源
    最近更新 更多