Компиляция SFML, используя g++
В этой статье будет кратко описано, как можно скомпилировать любой проект с использованием библиотеки SFML при помощи компилятора g++
.
Скачивание библиотеки
Здесь у нас есть два пути:
- Скачивание библиотеки с помощью менеджера пакетов
- Скачивание библиотеки с официального сайта
Рассмотрим оба.
Скачивание с помощью менеджера пакетов
apt
Сначала нам стоит определиться какой конкретно пакет нам нужно устанавливать, т.к. на разных дистрибутивах он может называться по-разному.
Чтобы найти пакет, нам нужно написать
apt-cache search sfml
Эта команда выведет нам пакеты, в названии которых присутствует sfml
. Конкретно нам нужен dev-пакет нашей любимой библиотеки.
Устанавливаем нужный нам пакет:
sudo apt-get install "название найденого пакета"
где "название найденого пакета" вам нужно заменить на ваш пакет.
dnf
SFML устанавливается с помощью dnf
так:
sudo dnf install SFML
yum
SFML устанавливается с помощью yum
так:
sudo yum install SFML
Скачивание с официального сайта
Переходим на официальный сайт SFML в раздел download и качаем последнюю версию для вашей ОС под g++
, распаковываем архив и кидаем в ваш проект, например создайте директорию dependencies
, где вы будете хранить все либы.
Тестовый код
Вот тестовый код, которым вы можете проверить, правильно ли вы всё скомпилировали.
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(400, 400), "SFML works!");
sf::CircleShape shape(100.f);
shape.setPosition(100,100);
shape.setFillColor(sf::Color(200,30,10));
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear(sf::Color(20,5,5));
window.draw(shape);
window.display();
}
return 0;
}
Подключение заголовочных файлов
Подключение заголовочных файлов для g++
осуществляется при помощи команды:
g++ -c "Filename.cpp" -I"Path_To_Include"
где "Filename.cpp" это наш компилируемый файл, а "Path_To_Include" сам путь где лежит директория include из нашей любимой SFML.
Вот пример с использованием стандартной директории, куда устанавливаются заголовки при установки SFML в ALT Linux и файла main.cpp
g++ -c main.cpp -I/usr/include/
Линковка библиотек
Чтобы слинковать библиотеки вам будет достаточно этой команды:
g++ main.o -o sfml-app -L"sfml_install_path"/lib "libs_names"
Достаточно просто заменить "sfml-install-path" на путь к библиотекам SFML
и заменить "libs_names" на библиотеки тех модулей которые вам нужны, с префиксом -
, для линукса это -l
.
Если вы качали SFML в директорию по-умолчанию, то вам достаточно просто указть название библиотек нужных вам модулей, вот пример:
g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system
Если вы качали в другую директорию, то нужно создать переменную окружения LD_LIBRARY_PATH
с путём до библиотек:
export LD_LIBRARY_PATH="sfml_install_path"/lib
где "sfml-install-path" это путь к библиотекам SFML
.
Запускаеи программу:
./sfml-app
В конце концов, после всех этих действий мы сможем получить наше прекрасное окно:
Пошаговая инструкция установки SFML на примере ALT Linux
- Качаем SFML при помощи:
sudo apt-get install libSFML-devel
Создаём файл
main.cpp
, в который вставляем тестовый код.Подключаем заголовки
g++ -c main.cpp -I/usr/include/
- Подключаем библиотеки
g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system
- Запускаем
./sfml-app