Если вы не знакомы с Premake4, тогда я настоятельно рекомендую вам просто использовать проекты Visual Studio напрямую.Если у вас возникли проблемы с этим, то, пожалуйста, исправьте свой вопрос, указав точно, что вы сделали, и именно те сообщения об ошибках, которые выдает Visual Studio при попытке сборки.Вы должны включить:
- Пути включения. полный набор включаемых путей, включая полные абсолютные имена каталогов (включая путь к вашему проекту и файлам решений).
- Статические пути поиска в библиотеке.
- Статическиебиблиотеки, которые вы включаете.
- Определения, с которыми вы строите.
Примечание: если вы не знаете, что из этого есть, вам нужно остановиться и многому научитьсябольше о том, как работают проекты C ++.Вам нужно понять, как компиляторы работают с включаемыми путями, статическими библиотеками, #defines и т. Д.
Если вы не знакомы с Premake4 и по-прежнему хотите использовать Premake4 с SDK, то сначала должен стать знакомым с Premake4 без SDK.Я мог бы дать вам весь сценарий premake4.lua, который вы могли бы просто подключить, изменить несколько строк, и все было бы волшебным образом (и если вы этого хотите, вы можете посмотреть, как создаются примеры SDK. В частности, examples/premake4.lua
),Но если бы я это сделал, вы бы не узнали бы ничего.Вы просто будете копировать и вставлять код, не имея ни малейшего понимания того, как он работает.
Поэтому вместо этого я расскажу вам, какие шаги вы должны предпринять, чтобы выучить Как использовать Premake4.
Шаг 1: Hello World, стиль Premake.Вы должны создать один файл .cpp, который является приложением Hello World.Он просто имеет стандартную функцию main
, которая печатает «Hello World» на консоли.Это простая часть.
Сложная часть - это скрипт Premake4.Вместо того, чтобы создавать проект Visual Studio напрямую, вы собираетесь написать сценарий Premake4, чтобы построить этот проект для вас.
Документация Premake4 поможет вам выполнить шаги по созданию вашего первого решения и проекта .Вам, конечно, нужно будет добавить файлы в этот проект .Вы также должны узнать, как использовать конфигурации , чтобы иметь возможность строить Debug и Release.Сборка Debug должна иметь символы, а сборка Release должна быть оптимизирована.
Шаг 2: Несколько проектов.Здесь у вас есть два файла .cpp: test.cpp
и main.cpp
.В test.cpp
поместите функцию, которая печатает что-то.Функция не должна принимать параметры или что-либо еще.В main.cpp
у вас должна быть функция main
, которая вызывает функцию, определенную в test.cpp
.Также должен быть test.h
, у которого есть прототип для функции, определенной в test.cpp
.
Хитрость в том, что вы не компилируете их в один и тот же исполняемый файл.Не напрямую.Вам нужны два проекта: один с именем test
и другой с именем main
.Проект test
должен быть статической библиотекой, которая компилирует test.cpp
.Проект main
будет фактическим исполняемым файлом, который компилирует main.cpp
.Они оба должны включить в свои списки файлов test.h
.
Здесь вы узнаете, что решения могут иметь несколько project
с.Два проекта имеют разные списки файлов.Каждый проект может иметь отдельный kind
, который определяет тип сборки только для этого проекта.Проект test
должен быть StaticLib
, а проект main
должен быть ConsoleApp
.
. Вам также нужно научиться использовать команду links для связиих вместе.Проект main
должен использовать links
для указания test
.test
не нужно ссылаться на что-либо.
Шаг 3: Мастеринг каталогов.
Здесь вы будете делать то же самое, что и Шаг 2. За исключением одного: поместите test.h
и test.cpp
в другой каталог (подкаталог текущего).Вам также понадобится файл test.lua
в этом каталоге, который вы будете запускать из основного premake4.lua
файла с помощью команды dofile
.test.lua
- это место, где вы определяете свой проект test
.Вы можете вызвать dofile
для файла test.lua
в любое время после создания решения с помощью команды solution
.
Обратите внимание, что проекту main
потребуется изменить каталог, в котором он найдет test.h
.Вам также нужно будет использовать команду includedirs
в проекте main
, чтобы сообщить компилятору, где искать заголовок test.h
, который вы включаете в main.cpp
.
Шаг 4: Вернуться к SDK.Теперь вы должны быть достаточно знакомы с Premake4, чтобы оглянуться назад на инструкции , на которые я указывал , и немного лучше их понять.Затем просто сделайте то, что сказано в инструкции.Когда он скажет вам, какой должна быть первая строка вашего скрипта, сделайте это первой строкой вашего скрипта.Поместите функцию UseLibs
туда, где написано;это даже дает вам пример того, куда это идет.Думайте о UseLibs
как о причудливой комбинации links
и includedirs
.