0

我一直在尝试让 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;
}

我试过这样做但它似乎不起作用。

任何帮助都会很棒,因为我对 linux/ubuntu 还是很陌生。

4

1 回答 1

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

于 2013-05-26T13:00:20.247 回答