似乎缺少“CMakeLists.txt”

时间:2017-12-21 19:46:20

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

我正在尝试构建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版本吗?

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

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

SFML的包含: maybe it's the binary version?

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

2 个答案:

答案 0 :(得分:1)

您可能下载了错误或可能将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正在安装并自动拾取它。)

答案 1 :(得分:0)

在使用-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,并将您所在的“ build”子目录用作构建目录。我们说“构建”,实际上是生成makefile,然后供“本机”构建系统(例如“ make”或Visual Studio)用来执行实际的编译和链接。这种安排并不总是很方便,因此引入了-S和-B命令行选项。