在Ubuntu 13.04和QT-Creator上设置SFML

时间:2013-05-25 22:48:08

标签: qt ubuntu compilation sfml

我一直在努力让SFML与QT-creator(以及一般的gcc)一起工作,但我的示例项目将无法编译。我使用以下命令安装它:

sudo apt-get install libsfml-dev

但编译只会给我带来很多错误:

/home/jan/Documents/SFMLTest/main.cpp:5: error: undefined reference to sf::String::String(char const*, std::locale const&)'

/home/jan/Documents/SFMLTest/main.cpp:5: error: undefined reference to `sf::RenderWindow::RenderWindow(sf::VideoMode, sf::String const&, unsigned int, sf::ContextSettings const&)'

等等。

我的.Pro文件设置如下:

SOURCES += main.cpp

LIBS += -lsfml-system -lsfml-window -lsfml-graphics -lsfml-audio

这是在main.cpp中:

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

我尝试过this,但似乎没有效果。

任何帮助都会很棒,因为我还不熟悉linux / ubuntu。

1 个答案:

答案 0 :(得分:1)

随Ubuntu提供的软件包非常陈旧,从那时起API发生了很大的变化(例如,没有sf::CircleShape)。我建议你自己建造它。从http://sfml-dev.org/download/sfml/2.0/下载并执行以下命令:

cmake
sudo make install

要调整配置,请安装cmake-qt-gui并执行cmake-gui而不是cmake

它可能会抱怨未找到依赖项,只需安装apt-get所缺少的内容即可。 (使用synaptic

可能更容易找到确切的包名称

有关详情:http://sfml-dev.org/tutorials/2.0/compile-with-cmake.php