You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SFML项目编译报错:sf::VideoMode构造函数匹配失败

编译SFML项目时VideoMode构造函数报错

环境信息

  • 操作系统:EndeavourOS
  • 编辑器:nvim
  • 代码来源:SFML官网提供的模板代码

代码

#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
    sf::CircleShape shape(100.f);
    shape.setFillColor(sf::Color::Green);

    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;
}

错误信息

main.cpp: In function ‘int main()’:
main.cpp:6:51: error: no matching function for call to ‘sf::VideoMode::VideoMode(int, int)’
    6 |     sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
      |                                                   ^
In file included from /usr/local/include/SFML/Window.hpp:41,
                 from /usr/local/include/SFML/Graphics.hpp:58,
                 from main.cpp:1:
/usr/local/include/SFML/Window/VideoMode.hpp:61:14: note: candidate: ‘sf::VideoMode::VideoMode(const sf::Vector2u&, unsigned int)’
   61 |     explicit VideoMode(const Vector2u& modeSize, unsigned int modeBitsPerPixel = 32);
      |              ^~~~~~~~~
/usr/local/include/SFML/Window/VideoMode.hpp:61:40: note:   no known conversion for argument 1 from ‘int’ to ‘const sf::Vector2u&’ {aka ‘const sf::Vector2<unsigned int>&’}
   61 |     explicit VideoMode(const Vector2u& modeSize, unsigned int modeBitsPerPixel = 32);
      |                        ~~~~~~~~~~~~~~~~^~~~~~~~
/usr/local/include/SFML/Window/VideoMode.hpp:52:5: note: candidate: ‘sf::VideoMode::VideoMode()’
   52 |     VideoMode();
      |     ^~~~~~~~~
/usr/local/include/SFML/Window/VideoMode.hpp:52:5: note:   candidate expects 0 arguments, 2 provided
/usr/local/include/SFML/Window/VideoMode.hpp:43:23: note: candidate: ‘constexpr sf::VideoMode::VideoMode(const sf::VideoMode&)’
   43 | class SFML_WINDOW_API VideoMode
      |                       ^~~~~~~~~
/usr/local/include/SFML/Window/VideoMode.hpp:43:23: note:   candidate expects 1 argument, 2 provided
/usr/local/include/SFML/Window/VideoMode.hpp:43:23: note: candidate: ‘constexpr sf::VideoMode::VideoMode(sf::VideoMode&&)’
/usr/local/include/SFML/Window/VideoMode.hpp:43:23: note:   candidate expects 1 argument, 2 provided

已尝试的解决方法

  • 尝试用Vector指定窗口大小,仍报错
  • 卸载重装SFML
  • 在本地目录构建SFML
  • 将main.cpp移到构建目录,问题均未解决

内容的提问来源于stack exchange,提问作者stubbie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 07:06:25