Обычно предлагается преобразовать проект – соглашаемся.
После того как проект будет преобразован в той же папке с проектами обычно появляется файл решения nebula2libs.sln, созданный автоматически, или же среда msvc сама предлагает его создать при попытке закрыть окно приложения.
Я, конечно, предполагаю, что те, кто читает эту статью, - программисты. Но если нет, то на всякий случай приведу краткое описание базовых операций, которые понадобятся при настройке проектов в msvc2008ee.
В директории nebula2\build\vstudio8 необходимо найти файл nebula2libs.sln и запустить его двойным кликом. IDE msvc2008ee работает с так называемыми решениями – набором проектов. В окне рабочей среды для разработки можно увидеть список проектов, которые есть в этом решении.
Чтобы открыть окно с описанием свойств проекта, нужно выделить интересующий проект левой кнопкой мыши и кликнуть на нем правой кнопкой мыши. Появится контекстное меню, где в самом низу будет пункт «Свойства». Его и нажимаем:
Появится окно с набором разнообразных настроек проекта:
При работе в основном нужно будет знать расположение следующих настроек. Часто надо будет подключать различные заголовочные файлы (.h) и файлы статических библиотек (.lib) разных SDK, библиотек, API. Пути к дополнительным заголовочным файлам задаются в пункте «Дополнительные каталоги включения». Для того, чтобы найти этот пункт настроек, нужно открыть окно свойств проекта. В левом подокне раскрыть список «Свойства конфигурации», далее раскрыть список “C/C++”, выделить запись «Общие». После этого в правом подокне окна свойств появится список пунктов настроек, среди которых должен быть пункт «Дополнительные каталоги включения». При его активации левой кнопкой мыши в конце строки появится кнопка с многоточием. Если нажать эту кнопку с многоточием, появится диалог задания путей к заголовочным файлам:
Кнопка с изображением папки служит для создания строки, в которой можно вручную или с помощью кнопки обзора прописать путь к каталогу с заголовочными файлами.
Другой элемент настроек – это командная строка. В ней можно задать макросы препроцессора или убрать их. Чтобы найти настройки командной строки, нужно в левом подокне раскрыть список «Свойства конфигурации», далее раскрыть список “C/C++”, выделить запись «Командная строка». В правом нижнем подокне с названием «Дополнительные параметры» можно задать макросы препроцессора и другие аргументы командной строки.
При сборке исполняемых файлов обычно появляется еще и список настроек компоновщика, но при сборке статических библиотек он отсутствует. Переходим к настройке проектов.
Настраиваем переменные препроцессора
В каждом! из проектов (microtcl, napplication, ndinput8, ndirect3d9, ndshow, ndsound, ngui, nkernel, nnebula, nnetwork, ntoollib) решения необходимо задать переменные препроцессора следующим способом:
Заходим в свойства проекта, “Свойства конфигурации”, “C/C++”, “Командная строка”. В поле “Дополнительные параметры” прописываем переменные:
/D "WINVER=0x0501"
Приведу в качестве примера скриншот с заданием этого макроса в проекте nkernel:
Небольшое объяснение. Макрос WINVER нужно установить в 0x0501, чтобы препроцессор смог открыть код, предназначенный для систем Windows XP и выше в заголовочных файлах.
Если интересно, можно еще глянуть сюда
Сборка проектов в решении
Начинаем сборку с проекта nkernel. Прописываем путь к папке “Include” установленного DirectX SDK. Вот пример как это выглядит у меня (у вас, естественно, заголовочные файлы DXSDK могут лежать в другой папке – ее и прописывайте):
Теперь можно построить проект nkernel, для чего нужно выбрать его, кликнуть правой кнопкой по проекту, и выбрать в появившемся контекстном меню пункт «Только проект», «Построить только nkernel»:
Если построение завершится успешно, то в директории nebula2\build\vstudio8\inter\win32d должен появиться файл “d_nkernel.lib”.
Небула использует несколько сторонних библиотек, которые нужно подключить к ней. Это так называемые dependencies – библиотеки, от которых код небулы зависит и использует. По началу при скачивании небулы я не обратил внимания, что там же есть пакет с файлами сторонних библиотек и скачивал их по отдельности вручную. Позже я наткнулся на этот пакет и дальше буду описывать более легкий способ подключений сторонних библиотек чем тот, которым я пользовался до обнаружения пакета dependencies.
Итак, скачать готовый пакет заголовочных файлов и скомпилированных статических библиотек сторонних библиотек можно по этой ссылке
Качать нужно файл nebula-vc8-deps-20070409.zip. Распакуйте этот архив в какую-нибудь папку. Внутри распакованного архива, вы обнаружите директорию code\nebula2\inc. Скопируйте папки ogg, sqlite и vorbis из нее в директорию nebula2\code\nebula2\inc.
Сборка проектов в решении
Настройку и построение проекта nkernel я описал выше. Опишу настройку остальных проектов. Для проектов ndirect3d9, ndsound, ndinput8, ndshow нужно прописать путь к заголовочным файлам DXSDK. Каждый проект строим отдельно в следующем порядке:
- nkernel
- nnebula
- ndirect3d9
- ndsound
- ndinput8
- ndshow
- nnetwork
- ntoollib
- ngui
- napplication
- microtcl
В результате в директории nebula2\build\vstudio8\inter\win32d должны появиться файлы: d_nkernel.lib, d_nnebula.lib, d_ndirect3d9.lib, d_ndsound.lib, d_ndinput8.lib, d_ndshow.lib, d_nnetwork.lib, d_ntoollib.lib, d_ngui.lib, d_napplication.lib, d_microtcl.lib. Сборку релизной конфигурации описывать не буду – все делается аналогично. Если будет нужно, сами разберетесь.
На этом сборка завершена. Сложный вид сборки со скачиванием и установкой новых версий сторонних библиотек, с ручным прописыванием путей к сторонним библиотекам, я как-нибудь выложу в виде pdf-файла. Ну все! Можно переходить к более интересным вещам, непосредственно к работе по изучению исходного кода движка. Об этом в следующих статьях. И да, дальше этого дотошности с встраиванием картинок чуть ли не на каждом шагу не будет.
24 января 2016