Вступление
Привет, это статья посвящена установке и подключение библиотеки SFML к среде разработки Clion в Linux Ubuntu. Я не могу гарантировать что это способ заработает на других дистрибутивах linux, но то что это работает в Ubuntu гарантирую на 90 %.
Проблемы
Я заметил что у многих людей возникают трудности подключения sfml не только к Clion, но и к другим средам разработки отличных от Visual Studio. Это видно по количеству запросов на форуме и видеороликов на youtube. В частности это проблемы связанны с cmake.
Установка
Итак приступим. Для начала воспользуемся информацией с официального сайта sfml, по установке на Ubuntu.
Забыл упомянуть что способ который я описываю работает с sfml 2.5 и выше. Для начала открываем терминал и вставляем туда команду:
sudo apt-get install libsfml-dev, для установки sfml по стандартному пути.
Подключение
Открываем ваш clion и создаем новый c++ проект. После создание открываем файл — CmakeList.txt.
По умолчание ваш CmakeList.txt выглядит так.
cmake_minimum_required(VERSION ваша версия cmake)
project(ваш проект)
set(CMAKE_CXX_STANDARD стандарт c++)
add_executable(ваш проект main.cpp)
Мы же изменим его вот так.
cmake_minimum_required(VERSION ваша версия)
project(ваш проект)
set(CMAKE_CXX_STANDARD ваш стандарт c++)
find_package(SFML 2.5 COMPONENTS graphics audio REQUIRED)
add_executable(ваш проект main.cpp)
target_link_libraries(ваш проект sfml-graphics sfml-audio)
В строке find_package() мы находим sfml по стандартному пути. В строке target_link_libraries() мы подключаем библиотеки. Вы также можете подключить остальные библиотеки sfml, например: sfml-network.
Тогда это будет выглядеть так: target_link_libraries(ваш проект sfml-graphics sfml-audio sfml-network).
Запуск!
Все готов обновляем ваш CmakeList.txt. и можно запускать.
Вставляем в ваш файл с функцией main тестовый код с сайта sfml.
Вот этот:
#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;
}
Заключение
И теперь вы можете работать с вашими sfml проектами в среде разработки clion.Или другой среды использующей build — систему cmake.
Для написание статья использовалась следующая информация: официальный сайт SFML.