在我看来,构建 SFML 最简单的方法是使用“MinGW Makefiles”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。如果 CMake 的 bin 目录尚未添加到 PATH,我强烈建议您以与上述类似的方式这样做。
然后设置SFML的路径和构建路径,我通常只使用子目录build\。
设置 CMake
然后按Configure 按钮并选择MinGW Makefiles 生成器。
注意:如果您使用 MSYS,则需要改用 MSYS Makefiles 生成器。
下一步,您可以更改各种 CMake 变量。可以在official SFML CMake tutorial 中找到这些选项的完整说明。重要的部分之一是更改 CMAKE_INSTALL_PREFIX,因为默认 CMake 值会出现权限问题,并且您实际上不希望将库文件安装在那里。也不要选择构建目录,否则安装会很混乱。我个人更喜欢使用子目录/install。
在您更改了您想要更改的所有内容后,您可以点击Generate,您应该会收到两条完成消息。
实际构建 SFML
CMake 仅生成 makefile 和项目文件,因为像 C++ 库这样的 SFML 还没有构建,因此我们接下来需要这样做。为此,我们切换回命令提示符并将目录更改为我们之前在 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 Makefiles CMake 生成器,而是选择 CodeBlocks - MinGW Makefiles。
调整上面提到的设置,包括CMAKE_INSTALL_PREFIX和按下Generate按钮。一切生成后,你可以去打开build目录下的Code::Blocks项目文件。
在 Code::Blocks 中,您可以轻松选择首选目标(推荐使用install)并单击构建按钮。
等待进程完成并检查install 目录。
恭喜您已成功构建 SFML!