类 sf::RenderWindow' 没有名为 'clear' 的成员

class sf::RenderWindow' has no member named 'clear'

本文关键字:clear 成员 sf RenderWindow      更新时间:2023-10-16

我花了至少 5 个小时试图让 sfml 库与我的 QT 创建者 ide 一起工作。我已经按照本教程 https://github.com/LaurentGomila/SFML/wiki/Tutorial%3A-Compile-and-Link-SFML-with-Qt-Creator 但仍然没有运气。
在构建简单代码后,我不断收到类成员不存在的错误。我可以创建类的实例,但是在尝试使用时出现多个错误
所创建对象的成员。我尝试查找与库相关的问题,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 (true)//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;
}

一旦我删除一条评论,就会弹出一个错误。我一辈子都不知道发生了什么。

提前谢谢。

额外信息

  • 阿斯特Ubuntu 12.10 Live(安装到硬盘(

  • 项目文件我确定这是不正确的
  • TEMPLATE = app
    #CONFIG += console
    CONFIG -= qt
    SOURCES += main.cpp
    LIBS += -L"/home/user/Projects/SFML/lib"
    CONFIG(release, debug|release): LIBS += -lsfml-audio -lsfml-graphics -lsfml-network -lsfml-window -lsfml-system
    CONFIG(debug, debug|release): LIBS += -lsfml-audio -lsfml-graphics -lsfml-network -lsfml-window -lsfml-system
    INCLUDEPATH += "/home/user/Projects/SFML/include"
    DEPENDPATH += "/home/user/Projects/SFML/include"
    


  • 错误: 我将发布编译输出
  • main.cpp: In function 'int main()':
    main.cpp:6:5: error: 'CircleShape' is not a member of 'sf'
    main.cpp:6:21: error: expected ';' before 'shape'
    main.cpp:7:5: error: 'shape' was not declared in this scope
    main.cpp:12:23: error: 'class sf::RenderWindow' has no member named 'pollEvent'
    main.cpp:14:23: error: 'class sf::Event' has no member named 'type'
    main.cpp:15:24: error: 'class sf::RenderWindow' has no member named 'close'
    main.cpp:18:16: error: 'class sf::RenderWindow' has no member named 'clear'
    main.cpp:19:16: error: 'class sf::RenderWindow' has no member named 'draw'
    main.cpp:20:16: error: 'class sf::RenderWindow' has no member named 'display'
    16:25:10: The process "/usr/bin/make" exited with code 2.
    Error while building project sfmlTest (target: Desktop)
    When executing build step 'Make'
    

  • 执行路径
  • make: Leaving directory `/home/username/Documents/Projects/c++/Sfml/sfmlTest-build-desktop-Qt_4_8_1_in_PATH__System__Release'
    


  • 使用的编译器:
  • 我相信 Gnu 编译器,G ++

    不是 100% 确定,但由于您在 Ubuntu 上,您很可能不是自己编译 SFML,而是只是调用apt-get install sfml-dev,这反过来将安装 SFML 1.6 而不是 SFML 2.x。在SFML 1.6中,命名约定是CamelCase,SFML 2.0的命名约定更改为camelCase。

    由于您想要并且应该使用 SFML 2.x,因此您需要使用 SFML 论坛中的非官方软件包,或者只需自己编译 SFML。