Как установить sdl2 ubuntu

Обновлено: 07.07.2024

Краткая инструкция по установке всех нужных для курса библиотек в Ubuntu

Содержание

На Linux рекомендуется использовать:

  • последнюю версию компилятора clang
  • последнюю версию системы сборки cmake
  • среду разработки CLion либо QtCreator

Библиотеки из основного репозитория

Множество C/C++ библиотек доступно в основном репозитории системы (предполагаем, что вы используете Ubuntu 16.04 LTS или старше). Следующие библиотеки используются в нашем курсе:

  • sdl2, sdl2-image, sdl2-mixer, sdl2-ttf в целях абстрагирования от операционной системы для создания окон, растеризации текстовых надписей, загрузки изображений с диска, загрузки и проигрывания звуковых файлов
  • assimp3 для загрузки 3D моделей из множества форматов файлов
  • bullet3 для расчёта столкновений в 3D пространстве
  • tinyxml2 для загрузки XML
  • glm для работы с линейной алгеброй в рамках задач 3D графики

Команда для установки данных библиотек:

Библиотека glbinding

Библиотека даёт прозрачный доступ к современным версиям OpenGL: программист использует API нужной ему версии, а glbinding сам запросит адреса функций выбранной версии у видеодрайвера. Рекомендуется использовать glbinding вместо обычных заголовков OpenGL.

Пакеты распространяются в специальном ppa:

После этого в CMake вы можете использовать find_package:

Библиотека anax

Библиотека используется для построения архитектуры программы на принципах Component-Entity-System. Для сборки склонируйте репозиторий и в каталоге клона вызовите cmake:

Далее выполните команду checkinstall, чтобы создать DEB-пакет “libanax-dev-custom” и установить его.

В установленном пакете находятся заголовки <anax/*.h> по пути /usr/local/include/ и библиотека libanax_s.a .

Библиотека nlohmann-json

Библиотека используется для загрузки и сохранения JSON. Для сборки склонируйте репозиторий и в каталоге клона вызовите cmake:

Далее выполните команду checkinstall, чтобы создать DEB-пакет “libnlohmann-json-dev-custom” и установить его.

Установка последней версии cmake

Перед началом удалите существующую версию CMake: sudo apt-get remove cmake .

Далее выполните команду checkinstall, чтобы создать DEB-пакет “cmake-custom” и установить его. Также вам нужно удалить системный пакет cmake перед началом установки.

Если скрипт завершился успешно, проверьте версию cmake в системе командой cmake --version :

Установка последней версии clang

  • скрипт get_clang.sh скачивает исходный код LLVM/Clang и собирает через CMake
  • скрипт install_clang.sh должен быть запущен через sudo, он соберёт и установит DEB-пакет “llvm-clang-custom”
  • файлы postinstall-pak и preremove-pak должны находиться рядом с install_clang.sh при сборке пакета

Также вам нужно удалить системные пакеты llvm и clang перед началом установки.

Если оба скрипта завершились успешно, проверьте версию clang в системе командой clang++ --version :

Используем clang по всей системе

Если у вас установлен clang, вы можете включить его в качестве компилятора по умолчанию:

Здравствуй, Хабр. Недавно наткнулся на новый цикл статей по sdl2, но без процедуры установки. Вроде ничего сложного, но если интересно, то давайте вместе пройдемся по граблям, которые могут нас ожидать. Я проведу установку для xcode10 на macOS 10.14.5, code::blocks на Ubuntu 18.04 и Visual Studio 2019 Windows 10. Можно, конечно, было бы использовать clion. Одна ide на всех системах, но мне по какой-то причине не нравится их продукт. Ничего личного, просто кодинг.

Для проверки я буду использовать следующий код.

Ubuntu

Ставим code::blocks из магазина — здесь никаких неожиданностей. Далее создаем простенький файл mian.cpp для теста.


Если не собираетесь компилировать из терминала, то нужно указать target в настройках проекта.


Отлично. Далее нужно установить сам sdl2. Пишем в терминале


После установки дадим знать ide, что нужно использовать sdl2. Перейдем в в раздел «project»->«build options». Нас интересует вкладка «Linker settings». В окно «other linker options» добавим "-lSDL2".


Заменяем на наш код. Отлично, окно рисуется.


macOS

Для установки вы можете использовать установочный образ с Сайта. На данный момент последняя стабильная версия 2.0.9.

Скачиваем и копируем в каталог /Library/Frameworks. Для использования может потребоваться аутентификация.

Запускаем xcode и выбираем проект command line tool macOS. Даем имя проекту и выбираем язык C++.

Чтобы добавить поддержку sdl2, необходимо перейти в «настройки проекта»->«build phases»->«link binary with libraries» и добавить элемент. В открывшемся окне выбрать «add other»


Добавляем наш файл /Library/Frameworks/SDL2.framework и можем проверять.

В случае, если вы предпочитаете использовать brew, то помните, что он устанавливает только статические библиотеки. В таком случае нужно передать флаг -I/usr/local/include.

Все работает, поехали дальше.


Windows

Установите vs studio. Скачайте библиотеку. Распакуйте содержимое и расположите где вам больше нравится. Я очень редко использую windows, поэтому не знаю, где хранятся все остальные библиотеки.

Создаем проект с пустым cpp файлом, либо консольное приложение, как вам удобно.
Перейдите в «проект»->«свойства»->«C/C++»->«дополнительные каталоги включаемых файлов». Добавьте путь к распакованному каталогу, указав include. В моем случае вышло \\Mac\Home\Downloads\SDL2-2.0.9\include, т.к. у меня виртуальная машина.


После этого в разделе «компоновщик»->«общие»->«дополнительные каталоги библиотек» нужно указать путь к SDL2.dll, например \\Mac\Home\Downloads\SDL2-2.0.9\lib\x64.

Осталось немного, «компоновщик»->«ввод»->«дополнительные зависимости» мы дописываем то, что необходимо использовать, SDL2.lib, SDL2main.lib, SDL2test.lib. После этого необходимо собрать проект. Собрав, скопируйте файл SDL2.dll из каталога lib\x64 или lib\x32 и поместите рядом с исполняемым файлом. Теперь пробуем наш код. Еще один момент: т.к. в «дополнительные каталоги включаемых файлов» мы указали путь сразу до подключаемых заголовков, то



Поздравляю, мы успешно собрали приложения под основные платформы. Надеюсь, у вас не возникнет трудностей при установке.

В настоящее время я занимаюсь программированием на C, и я действительно хочу использовать библиотеку SDL. Я хочу создать небольшую 2D-игру в C на Linux, чтобы немного улучшить свои навыки.

Моя проблема в том, что я не супер пользователь Makefile или библиотека на суперпользователе Linux, я просто настраиваю вещи один раз, когда на проекте и что он.

Поэтому у меня есть проблемы с компиляцией SDL2-программ на UBUNTU 14.04.

Затем я установил его с шагом по умолчанию:

После этого я вижу, что есть что-то в /usr/include/SDL2, поэтому я предполагаю, что он установлен.

Поскольку я все еще изучаю Makefile и SDL, я не понял, как это сделать.

но я нашел этот Makefile для компиляции старого SDL, а не SDL2

Но этот Makefile не работает для меня, он говорит, что он не знает lSDL_Mixer и другие вещи.

Как я могу создать работоспособный Makefile для компиляции C-программы с SDL2 с помощью Makefile и vim-редактора.

Заранее спасибо за вашу помощь

спросил(а) 2015-04-26T13:20:00+03:00 6 лет, 6 месяцев назад

Я пойду и очищу Makefile для вас.

объяснение

Переменные в make файле должны использоваться с $(. ) , а не $ <. >.

pkg-config имеет запись для SDL_Mixer, sdl-config - нет. pkg-config гораздо более общий.

использование override с флагами SDL позволяет вам запускать что-то вроде make CFLAGS="-O0 -g" не нарушая поддержку SDL.

Это действительно важно: флаги библиотеки SDL должны находиться в конце командной строки в LIBS , из-за того, что компоновщик GNU чувствителен к порядку, в котором указаны библиотеки.

Вам не нужны явные правила для .c файлов, потому что GNU Make имеет неявные правила, которые в порядке.

Обратите внимание, что в этом make файле есть некоторые очень важные функции. Например, он не будет автоматически перекомпилировать вещи при изменении файлов заголовков. Я бы рекомендовал вам использовать другую систему сборки, такую как CMake или SCons, которая обрабатывает это автоматически. Вы также можете сделать это с помощью Make, но вам придется вставить несколько скрытых строк кода в ваш make файл.

Надо сразу сказать библиотека SDL достаточно большой инструмент для работы с графикой. Поэтому когда вроде как уже знаешь язык так, что хочется чего-то большего, можно попробовать сторонние графические библиотеки.

Одной из таких можно взять SDL.


Распаковываем архив gz, в нем должен находиться архив .tar, открываем архив .tar, в нем должна находиться папка. Копируем эту папку, например в C:\

2. Запускаем CodeBlocks и заходим в пункт меню Settings->Compiler

3. Заходим во вкладку Search directories, нажимаем Add и выбираем директорию, которая содержит папку include, важно правильно выбрать версию i686-w64-mingw32 или x86_64-w64-mingw32 (зависит от архитектуры процессора, в крайнем случае можно выбрать другую папку, если вдруг не подошла одна).



4. Теперь заходим во вкладку Linker и добавляем папку с библиотеками (lib) из папки SDL



5. Теперь нужно скопировать SDL2.dll из папки SDL которую вы распаковывали. Библиотека SDL2.dll находится в папке bin в папке соответствующей версии (например i686-w64-mingw32), необходимо взять именно ту версию, исходники которой подключали на предыдущих шагах. SDL2.dll нужно размещать рядом с файлом *.exe, который будет скомпилирован для проекта. Обычно это папки bin/Debug, bin/Release внутри проекта.

По идее можно просто разместить SDL2.dll в папку C:\Windows\System32 или если Windows 64-битная, то в C:\Windows\SysWOW64, но тогда если разные проекты с разными версиями SDL, то возможны конфликты версий. Поэтому решением будет размещение библиотеки в разные папки непосредственно рядом с .exe.

6. Запускаем CodeBlocks и создаем новый Empty project


Сохраняем проект. Конечно, в CodeBlocks есть шаблон SDL проекта, но настроить вручную оказалось как-то проще.

7. Далее заходим в свойства проекта Project->properties (либо ПКМ на проект ->properties)


8. Во вкладке Build Targets необходимо установить Type на "GUI Application". Это нужно сделать для того, чтобы консольное окно не появлялось при запуске приложения.

9. Опять зайдем в настройки компилятора: Settings->Compiler во вкладку Linker Settings и добавим настройки для линковщика.


10. Добавим новый файл исходника в проект со следующим кодом.

Сохраняем исходные код и компилируем проект. Если нет ошибок, то все в порядке. В противном случае возвращаемся назад и проверяем все ли сделано как надо.

ДВАЖДЫ проверьте, что ваша библиотека SDL2.dll находится в той же папке, что и ваш .exe проекта или в папке system32

Так же в папке docs находится документацию SDL. Крайне рекомендуется с ней ознакомиться!

Читайте также: