我遇到了新的sfml的一个大问题,并且花了一天时间试图解决这个问题。我终于发现我需要用cmake编译它。最大的问题是cmake一直要求CMakeLists.txt而不是那里。请帮帮我,我只想在sfml中开始编码。我正在运行Windows 8.1,如果您需要更多信息,请问我,我会尽力给您。如果我看错的问题,请你提出一个新的解决方案。
答案 0 :(得分:5)
在我看来,构建SFML的最简单方法是使用" MinGW Makefiles" CMake生成器和CMake GUI。所以这里是一个关于如何以这种方式构建SFML的简要教程。
如果您没有bin
中的MinGW编译器PATH
目录,可以通过打开命令提示符(Windows Key
+ R
来临时添加它并输入cmd
+ Enter
):
set PATH=<path_to_your_mingw_compiler>\bin;%PATH%
接下来,您可以通过键入cmake-gui
从命令提示符启动CMake GUI。如果CMake的bin
目录尚未添加到PATH
,我强烈建议您以与上述类似的方式进行此操作。
然后设置SFML的路径和构建路径,我通常只使用子目录build\
。
然后按下Configure
按钮并选择MinGW Makefiles
生成器。
注意:如果您使用MSYS,则需要使用MSYS Makefiles
生成器。
下一步,您可以更改各种CMake变量。有关这些选项的完整说明,请参见official SFML CMake tutorial。其中一个重要的部分是更改CMAKE_INSTALL_PREFIX
,因为您将获得默认CMake值的权限问题,并且您基本上不希望在那里安装库文件。也不要选择构建目录,否则安装将会变得混乱。我个人更喜欢使用子目录/install
。
在您更改了想要更改的所有内容后,您可以点击Generate
,然后您应该收到两条完成消息。
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项目文件,那么你可以重复上面的前几步,而不是MinGW Makefiles
CMake生成器选择CodeBlocks - MinGW Makefiles
。
如上所述调整设置,包括CMAKE_INSTALL_PREFIX
,然后按下Generate
按钮。生成所有内容后,您可以打开build
目录中的Code :: Blocks项目文件。
在Code :: Blocks中,您可以轻松选择首选目标(建议使用install
)并单击构建按钮。
等待该过程完成并检查install
目录。
恭喜您成功构建了SFML!