Все статьи Установка библиотек для Ubuntu
Краткая инструкция по установке всех нужных для курса библиотек в Ubuntu
На Linux рекомендуется использовать:
- последнюю версию компилятора clang
- последнюю версию системы сборки cmake
- среду разработки CLion либо QtCreator
Студенты могут получить бесплатную лицензию на CLion, используя скан студенческого билета: jetbrains.com/student/
Библиотеки из основного репозитория
Множество C/C++ библиотек доступно в основном репозитории системы (предполагаем, что вы используете Ubuntu 16.04 LTS или старше). Следующие библиотеки используются в нашем курсе:
- sdl2, sdl2-image, sdl2-mixer, sdl2-ttf в целях абстрагирования от операционной системы для создания окон, растеризации текстовых надписей, загрузки изображений с диска, загрузки и проигрывания звуковых файлов
- assimp3 для загрузки 3D моделей из множества форматов файлов
- bullet3 для расчёта столкновений в 3D пространстве
- tinyxml2 для загрузки XML
- glm для работы с линейной алгеброй в рамках задач 3D графики
Команда для установки данных библиотек:
>sudo apt-get install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev \
libsdl2-ttf-dev libtinyxml2-dev libassimp-dev libbullet-dev libglm-dev
Библиотека glbinding
Источник: github.com/cginternals/glbinding/#install-instructions
Библиотека даёт прозрачный доступ к современным версиям OpenGL: программист использует API нужной ему версии, а glbinding сам запросит адреса функций выбранной версии у видеодрайвера. Рекомендуется использовать glbinding вместо обычных заголовков OpenGL.
Пакеты распространяются в специальном ppa:
> sudo apt-add-repository ppa:cginternals/ppa
> sudo apt-get update
> sudo apt-get install libglbinding-dev libglbinding-dbg
После этого в CMake вы можете использовать find_package:
find_package(glbinding REQUIRED)
# Экспортирует GLBINDING_LIBRARIES и GLBINDING_INCLUDES
target_link_libraries(${target} ... ${GLBINDING_LIBRARIES})
Библиотека anax
Библиотека используется для построения архитектуры программы на принципах Component-Entity-System. Для сборки склонируйте репозиторий и в каталоге клона вызовите cmake:
git clone https://github.com/miguelmartin75/anax.git
cd anax
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=false .
cmake --build .
Далее выполните команду checkinstall, чтобы создать DEB-пакет “libanax-dev-custom” и установить его.
sudo checkinstall -D \
-y --strip --stripso --nodoc \
--pkgname=libanax-dev-custom \
--pkgversion=2.1.0 \
--pkgrelease=git \
--deldesc=no
В установленном пакете находятся заголовки <anax/*.h>
по пути /usr/local/include/
и библиотека libanax_s.a
.
Библиотека nlohmann-json
Библиотека используется для загрузки и сохранения JSON. Для сборки склонируйте репозиторий и в каталоге клона вызовите cmake:
git clone https://github.com/nlohmann/json.git
cd json
cmake -DBuildTests=OFF .
Далее выполните команду checkinstall, чтобы создать DEB-пакет “libnlohmann-json-dev-custom” и установить его.
sudo checkinstall -D \
-y --nodoc \
--pkgname=libnlohmann-json-dev-custom \
--pkgversion=2.1.1 \
--pkgrelease=git \
--deldesc=no
Если команда завершилась успешно, вы можете начать использовать #include <nlohmann/json.hpp>
в своих проектах.
Установка последней версии cmake
Рекомендуется также прочитать статью Современный CMake: 10 советов по улучшению скриптов сборки
Перед началом удалите существующую версию CMake: sudo apt-get remove cmake
.
Зайдите на страницу загрузки (cmake.org) и скачайте пакет “Unix/Linux Source”. Распакуйте скачанный архив, перейдите в каталог и выполните следующие команды:
./configure
Далее выполните команду checkinstall, чтобы создать DEB-пакет “cmake-custom” и установить его. Также вам нужно удалить системный пакет cmake перед началом установки.
sudo checkinstall -D \
-y --strip --stripso --nodoc \
--pkgname=cmake-custom \
--provides=cmake \
--pkgversion=3.8.1 \
--pkgrelease=latest \
--deldesc=no
Если скрипт завершился успешно, проверьте версию cmake в системе командой cmake --version
:
>cmake --version
cmake version 3.8.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).
Установка последней версии clang
Вы можете скачать исходники LLVM/Clang из SVN и собрать, а затем установить с помощью checkinstall. Готовые скрипты для автоматизации этой задачи вы найдёте на странице gist.github.com/sergey-shambir/a075161d774e211e1a423826764c7d33 Для работы скриптов нужны установленные пакеты subversion, cmake и checkinstall.
- скрипт
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++ --version
clang version 4.0.0 (branches/release_40 298273)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/local/bin
Используем clang по всей системе
Если у вас установлен clang, вы можете включить его в качестве компилятора по умолчанию:
sudo update-alternatives --config c++
В появившемся консольном меню выберите clang:
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/g++ 20 auto mode
1 /usr/bin/clang++ 10 manual mode
2 /usr/bin/g++ 20 manual mode