Научный консалтинг
Главная
Контакты
Номер телефона
Как мы работаем
Гарантии
Условия
Цены

Последнее обновление:

Графическая библиотека SFML в Linux: как ее установить и использовать

В операционной системе Linux, нередко, используется так называемая консоль. Это когда черный экран, командная строка и… все. Но, консоль бывает удобна, как правило, для обслуживания самой операционной системы, тогда как пользовательские приложения обычно используют графический интерфейс (так называемый GUI - Grafic User Interface). Для его реализации необходима, соответственно, та или иная графическая библиотека.

Вообще, в настоящее время графических библиотек просто масса – и больших и малых, и простых и многофункциональных, и т.д. Мы в этой не будем даже пытаться рассмотреть их все, а сосредоточимся на известной библиотеке SFML. Написано о ней достаточно, например, в Википедии.

По умолчанию, эта библиотека не является установленной в Linux (например, Ubuntu). Кроме того, не установлены и зависимости, требуемые для ее полноценной установки и работы.

Примечание. В Windows и MacOS она устанавливается и работает, что называется, «из коробки». В Linux же придется устанавливать ее вручную. Вначале потребуется установить зависимости, затем – саму библиотеку.

Устанавливаем зависимости

Для установки зависимостей, равно как и для установки самой библиотеки, можно использовать команды apt-get, aptitude.

Настоятельно рекомендуется использовать именно aptitude, так как именно она позволяет установить зависимости корректно и без ошибок. Тогда как apt-get иногда не приводит к нужному результату.

Для того, чтобы установить зависимости, следует выполнить следующие команды:

  • # sfml-window
  • aptitude install libx11-dev -y
  • aptitude install libxcb1-dev -y
  • aptitude install libx11-xcb-dev -y
  • aptitude install libxcb-randr0-dev -y
  • aptitude install libxcb-image0-dev -y
  • aptitude install libxrandr-dev -y
  • aptitude install libgl1-mesa-dev -y
  • aptitude install libudev-dev -y
  • aptitude install libxrandr-dev -y
  • # sfml-graphics
  • aptitude install libfreetype6-dev -y
  • aptitude install libjpeg-dev -y
  • # sfml-audio
  • aptitude install libopenal-dev -y
  • aptitude install libflac-dev -y
  • aptitude install libvorbis-dev -y

Например, в Ubuntu 16.04 LTS установка проходит без каких-либо проблем.

Устанавливаем библиотеку SFML (в Ubuntu, Debian)

Устанавливать библиотеку SFML на Linux можно по-разному:

Из репозитория:

  1. Скачать готовый дистрибутив и установить библиотеку вручную
  2. Скачать исходный код, собрать, установить

Лучше всего выбрать первый способ, если есть возможность. Для этого используем команду

  • sudo aptitude install libsfml-dev

Как компилировать программу с библиотекой SFML

Пример программного кода

Рассмотрим простейший пример:

// Подключаем заголовок модуля Graphics, а он автоматически подключает заголовок модуля Window

  1. #include <SFML/Graphics.hpp>
  2. int main()
  3. {
  4. // создаём окно
  5. sf::RenderWindow app(sf::VideoMode(800, 600, 32), "Hello World - SFML");

  1. // основной цикл
  2. while (app.isOpen())
  3. {
  4. // проверяем события (нажатие кнопки, закрытие окна и т.д.)
  5. sf::Event event;
  6. while (app.pollEvent(event))
  7. {
  8. // если событие "закрытие окна":
  9. if (event.type == sf::Event::Closed)
  10. // закрываем окно
  11. app.close();
  12. }

  1. // очищаем экран и заливаем его синим цветом
  2. app.clear(sf::Color(0,0,255));

  1. // отображаем на экран
  2. app.display();
  3. }

  1. return 0;
  2. }

Компиляция

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 должна присутствовать на компьютере. Если ее не будет, запуск приложения будет невозможным.

Если все будет нормально скомпилировано и собрано, то, будучи запущенной, эта программа выводит окно, залитое синим цветом, как на рисунке:

Окно тестовой программы с библиотекой SFML (Linux)

Запуск программы может производиться либо из консоли (./sfml-app), либо путем двойного клика мыши на имени файла sfml-app в менеджере файлов.


Комментарии:
Даниил 15.09.2021 13:38РедактироватьУдалить
ТЫ ЛУЧШИЙ, спасибо большое, всё сработало
Всего комментариев: 1
Пожалуйста, не забудьте ознакомиться с правилами оставления комментариев.



Подписаться на комментарии на этой странице

Мы можем выполнить

Другие услуги
Интересная и полезная
информация