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
相关产品推荐
相关产品推荐

