- Установите CMake версии не меньше 3.12
- Windows: скачайте один из установщиков под Windows (например, версию 3.21.2 для x64) и установите (не забудьте выбрать пункт
Add CMake to current user PATH
при установке, иначе CMake не удастся запустить из терминала) - Linux: поставьте пакет CMake из официальных репозиториев (
apt install cmake
, etc) - mac OS: скачайте один из образов под macOS (например, версию 3.21.2 для macOS 10.10) и установите, или поставьте CMake через Homebrew (
brew install cmake
)
- Windows: скачайте один из установщиков под Windows (например, версию 3.21.2 для x64) и установите (не забудьте выбрать пункт
- Установите библиотеку GLEW
- Установите библиотеку SDL2
- Windows: скачайте dev-архив (подпункт
Development Libraries
на странице скачивания; например, версию 2.0.16 для Visual Studio) и распакуйте куда-нибудь - Linux: поставьте dev-пакет SDL2 из официальных репозиториев (
apt install libsdl2-dev
, etc) - Скачайте образ под macOS (например, версию 2.0.16) и установите, или поставьте SDL2 через Homebrew (
brew install sdl2
)
- Windows: скачайте dev-архив (подпункт
- Склонируйте куда-нибудь репозиторий с кодом для практического занятия:
git clone https://github.com/lisyarus/graphics-course-practice.git
- Соберите тестовый проект (
graphics-course-practice/2022/practice1
):- Windows:
- В директории с проектом создайте директорию сборки
<путь>/graphics-course-practice/2022/practice1/build
- Откройте терминал (стандартный
cmd
или лучше PowerShell, Git Bash, Cygwin, или что-нибудь такое) и перейдите в директорию сборки<путь>/graphics-course-practice/2022/practice1/build
- Сконфигурируйте сборку, запустив CMake:
cmake .. -G '<генератор>' -DGLEW_ROOT='<путь до библиотеки GLEW>' -DSDL2_ROOT='<путь до библиотеки SDL2>
, где<генератор>
- выбранный вами CMake-генератор, например'Visual Studio 17 2022'
, если вы хотите сконфигурировать проект для работы с Visual Studio 17 2022 (полный список Visual Studio генераторов есть здесь)'<путь до библиотеки GLEW>'
- путь до директории, куда вы распаковали библиотеку GLEW (в ней должны быть директорииdoc
,lib
,include
,bin
и файлLICENSE.TXT
)'<путь до библиотеки SDL2>'
- путь до директории, куда вы распаковали библиотеку SDL2 (в ней должны быть директорииdoc
,include
,lib
и несколько.txt
-файлов) При использовании нестандартного эмулятора терминала могут возникнуть проблемы с форматом путей, но CMake должен нормально распознать стандартные Windows-пути (C:\Users\Me\Projects\graphics-course-practice\2022\...
) В некоторых терминалах нужно использовать двойные, а не одинарные кавычки
- Соберите проект:
cmake --build .
- Скопируйте необходимые библиотеки (
${SDL2_ROOT}/lib/x64/SDL2.dll
и${GLEW_ROOT}/bin/Release/x64/glew32.dll
) в директорию с собранным проектом (при использовании Visual Studio это будетbuild/Debug
) и погорюйте о том, что в Windows нет концепции RPath - Запустите собранный проект, должно появиться окно голубого цвета:
build/practice1
- Пункты
d
иf
можно выполнить из Visual Studio, если вы использовали соответствующий генератор, -- для этого нужно открыть Visual Studio solution, сгенерированный в директории сборки, и выбрать practice1 (вместо ALL_BUILD!) в качестве стартового проекта
- Пункты
- В директории с проектом создайте директорию сборки
- Windows с помощью CMake-GUI:
- В директории с проектом создайте директорию сборки
<путь>/graphics-course-practice/2022/practice1/build
- Запустите CMake-GUI (он идёт в стандартном коплекте с CMake, т.е. скорее всего уже у вас установлен)
- В качестве директории с исходным кодом (
Where is the source code:
) укажите путь до тестового проекта (<путь>/graphics-course-practice/2022/practice1
) - В качестве директории сборки (
Where to build the binaries:
) укажите путь до директории сборки (<путь>/graphics-course-practice/2022/build
) - Добавьте переменную
GLEW_ROOT
с путём до библиотеки GLEW:- Нажмите
Add Entry
- Введите имя
GLEW_ROOT
- Выберите тип
PATH
- Выберите соответствующий путь в (
Value
)
- Нажмите
- Аналогично, добавьте переменную
SDL2_ROOT
с путём до библиотеки SDL2 - Нажмите
Configure
- Нажмите
Generate
- Дальнейшие действия совпадают с пунктами
d-f
в описании сборки под Windows
- В директории с проектом создайте директорию сборки
- Linux/macOS:
- Убедитесь, что вы находитесь в директории с проектом (
graphics-course-practice/2022/practice1
) - Создайте директорию сборки и перейдите в неё:
mkdir build && cd build
- Сконфигурируйте сборку, запустив CMake:
cmake ..
- Соберите проект:
cmake --build .
- Запустите собранный проект, должно появиться окно голубого цвета:
./practice1
- Убедитесь, что вы находитесь в директории с проектом (
- Любая ОС, CLion:
- На старте выберите "открыть проект", и откройте CMakeLists.txt в корне тестового проекта (
2022/practice1/CMakeLists.txt
) как проектный файл (CLion может спросить об этом) - Под windows: нужно создать CMake-профиль с путями до библиотек:
- Откройте
File > Settings > Build, Execution, Deployment > CMake
- Если не хотите менять текущий профиль (по умолчанию - Debug), создайте новый (плюсик сверху списка профилей)
- В строке
CMake options
введите-DGLEW_ROOT='<путь до библиотеки GLEW>' -DSDL2_ROOT='<путь до библиотеки SDL2>
(подробнее об этих путях см. в пунктеWindows.c
выше)- Генератор при этом указывать не нужно!
- Закройте окно настроек
- Если вы создавали новый профиль, выберите его в списке конфигураций (справа вверху)
- Откройте
- Запустите проект (Run /
[F6]
), должно появиться окно голубого цвета
- На старте выберите "открыть проект", и откройте CMakeLists.txt в корне тестового проекта (
- Windows:
graphics-course-practice's Introduction
graphics-course-practice's People
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.