【问题标题】:SFML tutorial not even workingSFML 教程甚至不起作用
【发布时间】:2016-04-20 17:02:20
【问题描述】:

我使用他们的教程在代码块上安装了 SFML,一步一步地跟着它。一切都已检查并正确完成,但他们的示例程序甚至没有正确构建。似乎代码块甚至找不到 SFML 的基本功能。 我错过了什么?

错误日志:

(http://i.imgur.com/eaGz9HK.jpg)

我的代码:

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

【问题讨论】:

  • 欢迎来到 StackOverflow!请不要将文本作为图像发布,最好将其包含在代码块中。
  • 链接器在抱怨。您是否链接了 SFML 库(而不仅仅是包含)它们?
  • @Vasfed - 不是来源,他链接到错误消息的图片
  • 我在构建选项的“链接器设置”中链接了它们。就像教程说的那样。
  • 但是如果我不给出路径,代码块怎么知道我把SFML库放在哪里?

标签: c++ codeblocks libraries sfml


【解决方案1】:

给出一个库位置-L 然后显式链接到确切的库是很奇怪的。因此,与其给出库的完整路径,不如给出它的名称。所以,不要说..\..\..\..\..\LOGICIELS\CodeBlocks\SFML\libs\libsfml-graphics-s-d.a,而是说sfml-graphics-s-d。对所有库执行此操作

当您看到-L..\..\..\..\..\..\LOGICIELS\CodeBlocks\SFML\lib 时,您是在告诉编译器(链接器)在哪里可以找到这些库。与库的约定是它们以lib 开头,然后是.a。因此,将您的库链接更改为您的库的名称,无 lib.a

所以,obj\Debug\main.o 之后应该是sfml-grphics-s-d sfml-window-a-d sfml-system-a-d sfml-main-d

【讨论】:

  • i.imgur.com/mLvPsGQ.jpg 不工作。同样的错误。我做错了吗?
  • graphics, system, windows, main 库都在您的原始链接行中,但新链接中没有 main。此外,您之前有-s-d-a-d-d 作为后缀,但现在它们都是-d。此外,现在错误的格式从sf::String::String 更改为_imp___Zn@sf....,因此您曾经遇到过 c++ 错误,现在您遇到了名称错误。
  • 最终结果如何?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-24
  • 2013-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-20
相关资源
最近更新 更多