OpenGL SDK Как создавать новые проекты с помощью Premake - PullRequest
0 голосов
/ 25 ноября 2011

Я недавно начал процесс изучения OpenGL, чтобы начать создавать графические приложения на C ++. Я установил OpenGL SDK и могу правильно строить проекты на этом. Однако на сайте OpenGL SDK практически нет никакой информации о том, как создавать новые проекты с использованием элементов SDK, таких как freeglut и т. Д. У меня есть Premake 4.0, и я понимаю, что нужно что-то делать с Файлы lua, однако я не знаю lua и не уверен, как использовать файлы Lua для создания нового проекта. Так вы могли бы помочь мне? Я использую VS2010, я должен создать проект, а затем сделать что-то с premake? Или создать какой-нибудь файл lua, а затем использовать premake для этого? Любая помощь была бы замечательной, потому что я очень потерян и очень хотел бы начать работать с OpenGL. Я много экспериментировал с этим, например, копировал файлы lua с SDK, но это не повезло.

1 Ответ

4 голосов
/ 25 ноября 2011

Если вы не знакомы с 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.cpptest.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.

...