目录

一、SFML是什么

二、下载

三、VS2022配置SFML

四、运行测试及问题解决


一、SFML是什么

SFML(Simple and Fast Multimedia Library)

SFML 是多媒体库,它为PC的各个组件提供简单的界面,用来简化游戏和多媒体应用程序的开发。 主要由五个模块组成,分别是:系统,窗口,图形,音频和网络。

SFML 是跨平台的,通过 SFML,你的应用程序可以在最常见的操作系统上进行编译和运行:Windows,Linux,macOS以及Android和iOS。

SFML 支持多种语言,具体可以在官网查看支持的语言。

二、下载

官网下载地址

进入官网下载页面后会显示如下界面:

因为我用的VS2022,64位,就选择下载Visual C++ 17版本,对照将自己的VS版本进行下载。

下载好后解压,将文件夹放在固定的位置便于后续使用,比如我就会放在D盘下,如下:

三、VS2022配置SFML

1、打开VS2022新建一个C++的空项目(此处演示我就省略了)

2、鼠标右击项目-->点击属性(如果找不到解决方案管理器一栏,按下快捷键CTRL +  alt + L就会出现 )

3、进入属性页面后,配置属性的点击VC++一栏,分别配置常规属性的包含目录和库目录。

在包含目录添加上include文件夹绝对路径,在库目录添加库目录的绝对位置即可。

(说明一下:包含目录就是头文件所在目录,平时的#include xxx   即使指向的此目录位置。

库目录就是存放静态库的目录,比如xxx.lib   xxxxd.lib等等。)

弄完之后再点击配置属性框内的链接器-->输入,然后在右侧的附加依赖项一栏添加自己需要的库即可。

⭐对于debug模式添加以xxx-d.lib结尾的库文件,如下:

sfml-audio-d.lib
sfml-graphics-d.lib
sfml-system-d.lib
sfml-window-d.lib
sfml-network-d.lib

⭐对于release模式,添加以xxx.lib结尾的库文件,如下:

sfml-audio.lib
sfml-graphics.lib
sfml-system.lib
sfml-window.lib
sfml-network.lib

添加完成后点击确定即可。

右键点击:添加-->新建项,新建一个cpp文件,输入以下内容:

#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode(800, 200), "SFML works!");
    sf::RectangleShape shape((sf::Vector2f (800.f, 200.f))); 
    shape.setFillColor(sf::Color::Red);

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }
        window.clear();
        window.draw(shape);
        window.display();
    }

    return 0;
}

如果上述配置没问题,输入代码后是没有错误的,如果出现错误查看是不是自己哪一步错了。

四、运行测试及问题解决

随后点击生成,再带点击运行(记住是Debug x64环境下,如果你选择了release版本,记得切换)

此时肯定会报错:由于找不到 sfmml-graphics-d-2.dl,无法继续执行代码。重新安装程序可能会解决此问题。

遇到问题不要慌,出现这种情况一般都是因为缺少动态链接库,只需将动态链接库复制到项目目录下即可,如下:
找到库目录下的bin文件夹,SFML-2.6.1\bin,点击进去:

将上述dll复制到项目里的Debug文件夹下:(以防万一全复制过来)

再次运行代码,就不会报错啦,运行结果如下:

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐