类 sf::RenderWindow' 没有名为 'clear' 的成员
class sf::RenderWindow' has no member named 'clear'
我花了至少 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;
}
一旦我删除一条评论,就会弹出一个错误。我一辈子都不知道发生了什么。
提前谢谢。
额外信息
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'
不是 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。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 对RValue对象调用的LValue ref限定成员函数
- 为什么使用 "this" 指针调用派生成员函数?
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 助记符和指向成员语法的指针
- 用于访问容器<T>数据成员的正确 API
- 内置函数可查看CPP中的成员变量
- 是否可以初始化不可复制类型的成员变量(或基类)
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 嵌套在类中时无法设置成员数据
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 将函数类成员映射到类本身内部
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 将Ref对象作为类成员
- 将包含C样式数组的对象初始化为成员变量(C++)
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 将公共但非静态的成员函数与ALGLIB集成
- 多成员Constexpr结构初始化
- 类 sf::RenderWindow' 没有名为 'clear' 的成员