Последнее обновление:
Графическая библиотека SFML в Linux: как ее установить и использовать
В операционной системе Linux, нередко, используется так называемая консоль. Это когда черный экран, командная строка и… все. Но, консоль бывает удобна, как правило, для обслуживания самой операционной системы, тогда как пользовательские приложения обычно используют графический интерфейс (так называемый GUI - Grafic User Interface). Для его реализации необходима, соответственно, та или иная графическая библиотека.
Вообще, в настоящее время графических библиотек просто масса – и больших и малых, и простых и многофункциональных, и т.д. Мы в этой не будем даже пытаться рассмотреть их все, а сосредоточимся на известной библиотеке SFML. Написано о ней достаточно, например, в Википедии.
По умолчанию, эта библиотека не является установленной в Linux (например, Ubuntu). Кроме того, не установлены и зависимости, требуемые для ее полноценной установки и работы.
Устанавливаем зависимости
Для установки зависимостей, равно как и для установки самой библиотеки, можно использовать команды apt-get, aptitude.
Настоятельно рекомендуется использовать именно aptitude, так как именно она позволяет установить зависимости корректно и без ошибок. Тогда как apt-get иногда не приводит к нужному результату.
Для того, чтобы установить зависимости, следует выполнить следующие команды:
# sfml-windowaptitude install libx11-dev -yaptitude install libxcb1-dev -yaptitude install libx11-xcb-dev -yaptitude install libxcb-randr0-dev -yaptitude install libxcb-image0-dev -yaptitude install libxrandr-dev -yaptitude install libgl1-mesa-dev -yaptitude install libudev-dev -yaptitude install libxrandr-dev -y# sfml-graphicsaptitude install libfreetype6-dev -yaptitude install libjpeg-dev -y# sfml-audioaptitude install libopenal-dev -yaptitude install libflac-dev -yaptitude install libvorbis-dev -y
Например, в Ubuntu 16.04 LTS установка проходит без каких-либо проблем.
Устанавливаем библиотеку SFML (в Ubuntu, Debian)
Устанавливать библиотеку SFML на Linux можно по-разному:
Из репозитория:
- Скачать готовый дистрибутив и установить библиотеку вручную
- Скачать исходный код, собрать, установить
Лучше всего выбрать первый способ, если есть возможность. Для этого используем команду
sudo aptitude install libsfml-dev
Как компилировать программу с библиотекой SFML
Пример программного кода
Рассмотрим простейший пример:
// Подключаем заголовок модуля Graphics, а он автоматически подключает заголовок модуля Window
#include <SFML/Graphics.hpp>int main(){// создаём окноsf::RenderWindow app(sf::VideoMode(800, 600, 32), "Hello World - SFML");
// основной циклwhile (app.isOpen()){// проверяем события (нажатие кнопки, закрытие окна и т.д.)sf::Event event;while (app.pollEvent(event)){// если событие "закрытие окна":if (event.type == sf::Event::Closed)// закрываем окноapp.close();}
// очищаем экран и заливаем его синим цветомapp.clear(sf::Color(0,0,255));
// отображаем на экранapp.display();}
return 0;}
Компиляция
1. Вначале следует создать объектный файл
g++ -c main.cpp
Если все успешно, создастся файл main.o.
2. Сборка
Чтобы получить исполняемый файл, следует сделать сборку, т.е. связать скомпилированный файл с библиотекой SFML. SFML состоит из пяти модулей: system, window, graphics, audio и network и библиотек для каждого из них. Что бы собрать приложение с библиотекой SFML, нужно должны добавить опцию "-lsfml-xxx" к команде компоновки. Например, "-lsfml-graphics" для модуля graphics (префикс «lib» и расширение ".so" библиотеки должны быть опущены).
g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system
Если все будет нормально скомпилировано и собрано, то, будучи запущенной, эта программа выводит окно, залитое синим цветом, как на рисунке:
Запуск программы может производиться либо из консоли (./sfml-app), либо путем двойного клика мыши на имени файла sfml-app в менеджере файлов.
