如何在cmake中为code :: blocks编译sfml 2.2

use*_*107 -1 c++ cmake codeblocks sfml

我对新的sfml有一个巨大的问题,并花了一天时间试图找出它.我终于发现我需要用cmake编译它.最大的问题是cmake一直要求CMakeLists.txt而不是那里.请帮帮我,我只想在sfml中开始编码.我正在运行Windows 8.1,如果您需要更多信息,请问我,我会尽力给您.如果我看错的问题,请你提出一个新的解决方案.

Luk*_*kas 5

在我看来,构建SFML的最简单方法是使用"MinGW Makefile"CMake生成器和CMake GUI.所以这里是一个关于如何以这种方式构建SFML的简要教程.

准备您的开发环境

如果您没有MinGW编译器bin目录PATH,可以通过打开命令提示符(Windows Key+ R并输入cmd+ Enter)临时添加它:

set PATH=<path_to_your_mingw_compiler>\bin;%PATH%

接下来,您可以通过键入命令提示符启动CMake GUI cmake-gui.如果bin没有添加CMake的目录PATH,我强烈建议您以与上述类似的方式进行.

设置PATH并打开CMake GUI

然后设置SFML的路径和构建路径,我通常只使用子目录build\.

设置源和构建目录

设置CMake

然后按下Configure按钮并选择MinGW Makefiles发电机.

注意:如果使用MSYS,则需要使用MSYS Makefiles生成器.

选择发电机

下一步,您可以更改各种CMake变量.有关这些选项的完整说明,请参阅官方SFML CMake教程.其中一个重要的部分是更改CMAKE_INSTALL_PREFIX,因为您将获得默认CMake值的权限问题,并且您基本上不希望在那里安装库文件.也不要选择构建目录,否则安装将最终凌乱.我个人更喜欢使用子目录/install.

安装路径选项

在您更改了要更改的所有内容后,您可以单击,Generate然后您应该获得两条完成消息.

配置成功

实际构建SFML

CMake只生成makefile和项目文件,因为尚未构建SFML作为C++库,因此我们需要接下来.为此,我们切换回命令提示符并将目录更改为我们之前在CMake中设置的构建目录.

由于我们希望将所有内容直接安装到先前指定的CMAKE_PREFIX_INSTALL目录中,因此我们现在将运行makefile的install目标.此外,由于我们最有可能使用多核处理器,我们真的希望快速构建并使用-jN标志,其中N是一个整数,指定应使用多少线程.请记住,如果您为系统选择的数字太高,这可能会冻结您的系统.输入命令mingw32-make install -jN,如下所示.

注意:如果您正在使用MSYS(或nuwen的MinGW编译器),则需要使用make而不是mingw32-make.

构建安装目标

等待进程完成并检查install目录.

恭喜您已成功构建SFML!


使用Code :: Blocks代替

如果你真的想要一个Code :: Blocks项目文件,那么你可以重复上面的前几步,而不是MinGW MakefilesCMake生成器选择CodeBlocks - MinGW Makefiles.

Code :: Blocks生成器

如上所述调整设置,包括CMAKE_INSTALL_PREFIX然后按Generate按钮.生成所有内容后,您可以在build目录中打开Code :: Blocks项目文件.

Code :: Blocks项目文件

在Code :: Blocks中,您可以轻松选择首选目标(install建议)并单击构建按钮.

Code :: Blocks目标

等待进程完成并检查install目录.

恭喜您已成功构建SFML!