And*_*rew 4 c++ libraries sfml
我花了至少 5 个小时尝试让 sfml 库与我的 QT-creator 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;
}
Run Code Online (Sandbox Code Playgroud)
一旦我删除一条评论,就会弹出错误。我一生都无法弄清楚发生了什么。
提前致谢。
额外信息
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"
Run Code Online (Sandbox Code Playgroud)
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'
Run Code Online (Sandbox Code Playgroud)
make: Leaving directory `/home/username/Documents/Projects/c++/Sfml/sfmlTest-build-desktop-Qt_4_8_1_in_PATH__System__Release'
Run Code Online (Sandbox Code Playgroud)
不是 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。
| 归档时间: |
|
| 查看次数: |
5246 次 |
| 最近记录: |