-
Автор темы
- #1
Привет, друзья!
Сегодня с Вами познакомимся с Premake, как указано в тайтл, это инструмент автоматизации сборки программ.
Иными словами, вам не нужно будет самостоятельно настраивать проекты в Visual Studio — это сделает утилита, для которой вы укажете настройки и зависимости проекта.
Нахуя это нужно? - Premake позволяет вам описать структуру и зависимости проекта в простом и понятном формате, а затем генерировать необходимые файлы проекта (.sln, .vcxproj, .vcxproj.user, .vcxproj.filters).
Этап 1. Установка
Скачиваем архив с утилитой:
Создаём на диске C (или диске на котором ваша система) папку premake и закидываем туда premake5.exe
Далее Win + X > Параметры > Система > О программе > Дополнительные параметры системы > Переменные среды:
Добавляем в Системные переменные > Path, директорию в которой наша утилита
Отлично, теперь мы имеем доступ к premake из любой директории (Хуй знает почему premake не имеет инсталлера который бы сделал эти действия за нас)
Этап 2. Создание проекта
main.cpp
premake5.lua (Файл с настройками проекта)
Открываем cmd, пишем cd "путь к директории проекта", затем пишем следующее:
P.S: первый аргумент (vs2017) это версия моей Visual Studio, свою версию найдёте
Этап 3. Заключение
Мы сгенерировали проект Visual Studio из настроек что были в нашем premake5.lua
В целом, Premake — это инструмент, который может значительно упростить процесс управления проектами и сборки кода, особенно в случае с кроссплатформенными проектами или командами, работающими с разными инструментами и средами разработки.
BONUS Этап 4. Пройдёмся по документации
Допустим, нам нужно собрать библиотеку DLL, за это отвечает параметр kind, выше он указан как "ConsoleApp"
Для сборки DLL нам нужен параметр
Представим ситуацию, что в нашем проекте используется PlaySoundA, но без линка либы этой функции мы получаем следующую ошибку:
LKN2019 ссылка на неразрешенный внешний символ __imp_PlaySoundA в функции ...
Открываем premake5.lua и добавляем новый параметр "links"
Гуглим функцию, видим что эта функция принадлежит либе
Подключаем её
Ошибка устранена, кучу других параметров для настройки зависимостей и в целом проекта будет
До связи!
Сегодня с Вами познакомимся с Premake, как указано в тайтл, это инструмент автоматизации сборки программ.
Иными словами, вам не нужно будет самостоятельно настраивать проекты в Visual Studio — это сделает утилита, для которой вы укажете настройки и зависимости проекта.
Нахуя это нужно? - Premake позволяет вам описать структуру и зависимости проекта в простом и понятном формате, а затем генерировать необходимые файлы проекта (.sln, .vcxproj, .vcxproj.user, .vcxproj.filters).
Этап 1. Установка
Скачиваем архив с утилитой:
Пожалуйста, авторизуйтесь для просмотра ссылки.
- Скачиваем здесь (no ad)Создаём на диске C (или диске на котором ваша система) папку premake и закидываем туда premake5.exe
Далее Win + X > Параметры > Система > О программе > Дополнительные параметры системы > Переменные среды:
Добавляем в Системные переменные > Path, директорию в которой наша утилита
Отлично, теперь мы имеем доступ к premake из любой директории (Хуй знает почему premake не имеет инсталлера который бы сделал эти действия за нас)
Этап 2. Создание проекта
main.cpp
C++:
#include <iostream>
int main() {
printf("hello world!\n");
return 0;
}
Код:
workspace "HelloWorld"
configurations { "Debug", "Release" }
project "HelloWorld"
kind "ConsoleApp"
language "C++"
files { "main.cpp" }
filter { "configurations:Debug" }
defines { "DEBUG" }
symbols "On"
filter { "configurations:Release" }
defines { "NDEBUG" }
optimize "On"
Открываем cmd, пишем cd "путь к директории проекта", затем пишем следующее:
P.S: первый аргумент (vs2017) это версия моей Visual Studio, свою версию найдёте
Пожалуйста, авторизуйтесь для просмотра ссылки.
(no ad)Этап 3. Заключение
Мы сгенерировали проект Visual Studio из настроек что были в нашем premake5.lua
В целом, Premake — это инструмент, который может значительно упростить процесс управления проектами и сборки кода, особенно в случае с кроссплатформенными проектами или командами, работающими с разными инструментами и средами разработки.
BONUS Этап 4. Пройдёмся по документации
Допустим, нам нужно собрать библиотеку DLL, за это отвечает параметр kind, выше он указан как "ConsoleApp"
ConsoleApp | A console or command-line application. |
Для сборки DLL нам нужен параметр
SharedLib | A shared library or DLL. |
Представим ситуацию, что в нашем проекте используется PlaySoundA, но без линка либы этой функции мы получаем следующую ошибку:
LKN2019 ссылка на неразрешенный внешний символ __imp_PlaySoundA в функции ...
Открываем premake5.lua и добавляем новый параметр "links"
Код:
links ""
Гуглим функцию, видим что эта функция принадлежит либе
Winmm.dll |
Подключаем её
Код:
links "Winmm.lib"
Ошибка устранена, кучу других параметров для настройки зависимостей и в целом проекта будет
Пожалуйста, авторизуйтесь для просмотра ссылки.
(no ad)До связи!