我的SFML(在CodeBlocks中)不起作用

时间:2016-05-03 17:52:05

标签: c++ 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;
}

当我尝试运行CodeBlocks时说:

undefined reference to `sf::String::String(char const*, std::locale const&)
undefined reference to `sf::VideoMode::VideoMode(unsigned int, unsigned int, unsigned int)
undefined reference to `sf::RenderWindow::RenderWindow(sf::VideoMode, sf::String const&, unsigned int, sf::ContextSettings const&)

还有很多其他错误。这里的图书馆包括

enter image description here

我定义&#34; SFML_STATIC&#34;太。 有谁知道为什么?感谢。

1 个答案:

答案 0 :(得分:0)

  

从SFML 2.2开始,当静态链接时,您必须链接所有   SFML的依赖项也适用于您的项目。这意味着,如果你   例如,您将链接sfml-window-s或sfml-window-s-d   还必须链接opengl32,winmm和gdi32。其中一些依赖   库可能已经列在“继承值”下,但添加了   他们自己不应该造成任何问题。

     

此外,由于Code :: Blocks使用GCC,因此链接顺序很重要。   这意味着依赖于其他库的库必须是   在他们依赖的库之前添加到库列表中。如果你   不遵守此规则,您将收到链接器错误。

您可以在此处看到每个模块的依赖关系

http://www.sfml-dev.org/tutorials/2.3/start-cb.php

希望这会有所帮助。