Компіляція під VS2008 - Valve Developer Community
У цій статті ви дізнаєтесь як отримати Source SDK для компіляції підVisual Studio 2008та/абоVisual C++ Express 2008. Є кілька речей, які вам потрібно зробити для початку роботи. Перш ніж розпочати, створіть ваш мод.
Установка Visual Studio 2008
Якщо ви не маєте Visual Studio 2008, ви можете безкоштовно отримати Visual C++ Express 2008 від Microsoft.
Оновлення до Service Pack 1
Якщо ви встановили VS2008 до серпня 2008 року, вам необхідно встановити SP1. Service Pack завантажується через Windows Update, проте на даний момент, потрібне ручне завантаження:
Service Pack 1 покращує звіти про помилки та виправляє помилки при роботі з базою даних Intellisense, решта покращень не має прямого відношення до Source SDK.
Відкриття солюшена
- Запустіть копіюMicrosoft Visual Studio.
- ВиберітьFile-&Open Solutionз меню і відкрийте солюшенGame_Episodic-2005.slnрозташований у директорії src вашого мода, виберіть той, який відповідає вашій версіїMicrosoft Visual Studio. Зауважте, що частина імені файлу з "HL2" буде відповідати вибраному вами моду в процесі створення. Якщо ви створили моди через Scratch, "Scratch" з'явиться там же.
Оновлення файлів проекту
Якщо ви працювали над вашим модом у попередніх версіях VS, Visual Studio запропонує вам оновити файли проекту і можливо, ви захочете, щоб було зроблено резервну копію проекту, резервну копію необхідно робити вручну, інакше ви втратите стару версію назавжди.
Виправлення налагоджувальної компіляції
Правий-Клік > Properties на проектах Server та Client (виділіть їх обидва). Переконавшись, що ви працюєте у режиміналагодження (Debug) (верхній лівий кут у діалозі налаштувань - можливо, вам спершу знадобиться вибрати пункт Configuration Properties у списку зліва) змінітьConfiguration Properties > Linker > Input > Ignore Specific Libraryнаlibc;libcd;libcmtd(додатково 'd' на кінці).
Можете вилучити цю частину. Так само не забудьте запустити ваш мод з параметром -allowdebug!
Виправлення відсутніх символів
Якщо ви бачите, що відсутні такі символи, як: ConVar_Register вам необхідно додати tier3.lib в статичні бібліотеки, що лінуються разом з модом.
Вимкнення /Wp64
Ви будете отримувати попередження про Wp64. Ви можете ігнорувати їх, але якщо вони вам заважають, зробіть таке: правий-клік > Properties на Server та Client проектах, потім змінітьConfiguration Properties > C/C++ > General > Detect 64-bit Portability IssuesнаNo.
Установка DirectX SDK (для шейдерів)
Для створення нового шейдера вам потрібний MS DirectX SDK (Березень 2009). Після встановлення слідуйте інструкціям нижче, щоб впровадити його у ваш проект.
- Перейдіть до Tools - Options: Projects and Solutions - VC++ Directories.
- Виберіть "Include files" та додайте ". \Microsoft DirectX SDK (November 2008)\Include".
- Виберіть "Library files" і додайте ".\Microsoft DirectX SDK (November 2008)\Lib\x86".
- У Solution Explorer натисніть правою кнопкою миші на 'client_hl2' і виберіть Properties.
- У вікні параметрів client_hl2 виберіть Linker - Input.
- Виберіть 'Additional Properties' і натисніть '. справа.
- Якщо тут вже є запис, створіть новий запис після нього (пробілу буде достатньо, якщо ви не зможете створити нову лінію), і напишіть 'user32.lib 'без лапок.
- Повторіть ці кроки для сервера.
Missing vc80.pdb
Ви можете зіткнутися з цими попередженнями після спроби компіляції з одним із інструментів/бібліотек, що впроваджуються в SDK. Ви це бачите, т.к. ваш код був компільований у VS2008 (VC9), у той час як SDK .libs були відкомпільовані у VS2005 (VC8).
Попередження не допускають компіляцію файлів PDB. Найпростіший спосіб виправлення цієї проблеми – компіляція бібліотеки, яка створює їх сама!
Виправлення grenade_tripmine.cpp
Якщо запустили код hl2mp і отримали помилку C2039: 'OnTakeDamage_Alive' : is not a member of 'CBaseGrenade' , перейдіть долінії 31у shared/basegrenade_shared.h :