sfml_logo

Компиляция под Linux — SFML 2.3.1

Здравствуй дорогой читатель!

Перед началом самой практической статьи, я хотел бы немного прояснить ситуацию, и произвести процесс знакомства с такой великолепной мультимедиа библиотекой под названием Simple and Fast Multimedia Library (SFML) — Простая и быстрая мультимедиа библиотека.

sfml_logo

Это невероятно простая в освоении и применении библиотека для написания графических (в основном), аудио и сетевых, а может быть и все сразу, приложений. Основной проект написан С++, но в данный момент крайне активно развиваются форки данной библиотеки на разных языках. Официально поддерживаемые форки это CSFML (язык С) и SFML.Net (C#). Но стоит упомянуть мощную активность комьюнити, что в результате выливается в SFML на языках Java, Go, D, Nim, Pascal, Python, Ruby, Rust и многие другие (подробнее смотрите на официальном сайте SFML). Вообще, Википедия говорит, что это объектно-ориентированный аналог SDL, но, как я написал выше, у SFML есть своя функциональная версия на С. Но, помимо сторонних разработок на других языках, стоит сказать об отзывчивости самих разработчиков, которые активно общаются и помогают пользователям на своем форуме. Насколько я понимаю, в данный момент ведется разработка под Android, так что скоро можно будет пользоваться всеми удобствами там, где сейчас это так востребовано и актуально. Но и самое главное — это конечно же прекрасная документация и абсолютная бесплатность и открытость. Знатокам — распространяется по лицензии zlib License.

Собственно, о данной библиотеке я, пожалуй, обязательно посвящу в будущем много статей. Поскольку я сам относительно много написал используя SFML, тем более это мне интересно до сих пор, и время от времени я позволяю себе в качестве приятного времяпрепровождения попрограммировать что-нибудь на этой библиотеке. Кстати говоря, с некоторыми моими проектами, которые мне не так стыдно показать, вы можете ознакомиться в моем репозитории TETRAQUARK-REPO.

Но перейдем к делу. Наша задача — скомпилировать в этом уроке из исходников SFML 2.3.1 готовую библиотеку на ОС Linux (я буду компилировать на дистрибутиве Ubuntu 14.04).

Где брать исходники? Ссылки конкретно на архив с исходниками я давать не буду, поскольку с выходом новой версии данная ссылка потеряет актуальность, поэтому ищите код на этой страничке: http://www.sfml-dev.org/download/sfml/2.3.1/.  Конкретно в этой статье нас интересует именно Source code SFML-2.3.1.

Есть ли официальная информация по поводу компиляции? Да, есть. Найти вы можете данную информацию тут: http://www.sfml-dev.org/tutorials/2.3/compile-with-cmake.php. На момент написания статьи, там повествовалось про сборку с помощью cmake. Там же приведен некий список зависимостей для библиотеки — может пригодиться.

И так, приступим. Для начала создадим каталог, где будут лежать исходники:

Копируем туда .zip архив с исходниками (я качал прям в эту папку с помощью команды: wget URL, где url — ссылка на архив).

Разархивируем:

Если неустановлен zip, то устанавливаем:

В итоге, исходники должны лежать у нас тут: ~/sfml/SFML-2.3.1/

Читаем файл readme.txt — там что-то написано.

Приступаем к сборке с помощью cmake. Для начала его устанавливаем:

И в каталоге с исходниками выполняем сборку:

В процессе сборки могут возникнуть разные ошибки, нужно читать. Но чаще всего cmake будет ругаться на отсутствие в системе определенных зависимостей. Поэтому все, что просит cmake — нужно поставить руками с помощью команды: sudo apt-get install ИМЯ_ПРОГРАММЫ.

Вот список того, что я доставлял сам:

  • xcb-image
  • libgl1-mesa-dev
  • mesa-utils
  • libxcb-image0-dev
  • libudev-dev
  • libjpeg-dev
  • libopenal-dev
  • libflac-dev
  • libvorbis-dev

После успешной сборки, когда cmake вам скажет что-то вроде Configuring done, пришло время компиляции и установки.

Это просто, достаточно выполнить следующее:

Если вышеуказанные команды завершились успешно, то поздравляю, вы скомпилировали SFML-2.3.1 под Linux.

Далее будет статья про сборку SFML под Windows и подключение SFML к проекту в разных IDE.

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">