Сайт | Лаборатория | Форум | Wikiservia



In english

harpywar.com

Главная

Вики

Форум

Лаборатория

 Статьи
   Игры
   Настройка серверов
     PvPGN
     D2GS
     NFS: U
     Apache
     ArcEmu

   Кодинг
     .NET
     PHP

   Разное

 Проекты
   QDoom
   IRC Search
   vbreality [web]
   UTech p2p Realm [web]
   PvPGN система статистики
   Diablo 2 Launcher
   WoW Simple Launcher

 Моё
   Творчество
   Оборудование

Поиск по сайту


Хостинг и VDS, скидка при переходе
 
PvPGN (Player vs Player Game Network)
Иконки Warcraft 3 (w3xp_userselected_icon)
Создание иконок Warcraft 3
PvPGN c ладдером в Starcraft [x]
Группы консольных команд (command_groups.conf) [x]
Battle.net утилиты
Создание баннеров (ad.conf)
address_translation.conf
Иконки Starcraft [x]
Как скомпилировать исходники PvPGN 1.8.5 под Windows
Headers и библиотеки для компиляции PvPGN
Как скомпилировать исходники PvPGN 1.99 из SVN, под Windows
PvPGN и MSSQL (через ODBC)
Как установить PvPGN 1.8.5 под Linux
Установка PvPGN 1.99 на Linux
Среда для эффективной разработки PvPGN
Как скомпилировать исходники PvPGN 1.99 из SVN, под WindowsСоздано: 25.04.2011
Изменено: 30.04.2011
Автор: HarpyWar

В этом руководстве рассматривается подробная пошаговая компиляция исходников сервера PvPGN 1.99 из SVN, под Windows, с помощью Visual Studio 2010. Эта версия PvPGN не является стабильной, но тем не менее рекомендую использовать именно её, т.к. по сравнению с 1.8.5 в ней множество улучшений.

В конце статьи есть видео, на котором показан весь процесс от начала до конца, на свежеустановленной виртуальной машине с Windows XP.


P.S. Всё тоже самое, но автоматически, можно сделать с помощью PvPGN Magic Builder :)


Подготовка файлов

1. Скачать и установить Visual C++ Express 2010
Если у вас уже установлена полная версия Visual Studio 2010, то экспресс качать не нужно.
Можно использовать и Visual Studio 2008, отличие будет только в выборе компилятора в CMake.

2. Скачать и установить последнюю версию CMake. На момент написания этой статьи последняя версия 2.8.4 (скачать установку). Более ранние не поддерживают VS 2010.

3. Скачать исходники PvPGN из SVN (с помощью TortoiseSVN), либо скачать их архивом
Адрес SVN: https://github.com/pvpgn/pvpgn-server/tags/v1.99/pvpgn

Положить исходники в отдельную папку. В этом примере будет папка c:\svn\pvpgn\

Переименовать файлы конфигов в папке pvpgn\conf\, с заменой:
bnetd.conf.win32 > bnetd.conf.in
d2cs.conf.win32 > d2cs.conf.in
d2dbs.conf.win32 > d2dbs.conf.in

Открыть файл pvpgn\cmake\Modules\DefineInstallationPaths.cmake, найти строчку "${EXEC_INSTALL_PREFIX}/etc" и изменить её на "${EXEC_INSTALL_PREFIX}conf"

Если же оставить как есть, то CMake заменит пути в конфигах на абсолютные, типа "C:\Program files\pvpgn\conf\", и PvPGN будет искать их только там. А конфиг будет искаться в папке etc. Это сделано для UNIX систем и установлено по-умолчанию.


4. Скачать заголовочные файлы и библиотеку zlib:
Исходники http://www.winimage.com/zLibDll/zlib125.zip
Библиотека http://www.winimage.com/zLibDll/zlib125dll.zip

Извлечь их в папку c:\svn\pvpgn\zlib
zlib125.zip\zlib-1.2.5\zconf.h > c:\svn\pvpgn\zlib\zconf.h
zlib125.zip\zlib-1.2.5\zlib.h > c:\svn\pvpgn\zlib\zlib.h
zlib125dll.zip\dll32\zlibwapi.lib > c:\svn\pvpgn\zlib\zlibwapi.lib

Можно скачать в отдельном архиве zlib125_headers.zip только эти файлы.


5. Скачать заголовочные файлы и библиотеку для базы данных (MySQL, PostgreSQL, SQLite, ODBC). Далее будет показано, как скомпилировать с MySQL, а где скачать эти файлы подробно описано в этой статье.
Их можно положить в c:\svn\pvpgn\mysql (см. подробнее ниже)

Процесс

1. Запустить CMake в графическом режиме (cmake-gui) и указать путь к исходникам PvPGN:
Where is the source code: C:/svn/pvpgn
Where to build the binaries: C:/svn/pvpgn/build

Нажать Configure, выбрать Visual Studio 10 в качестве компилируемой среды:

CMake start CMake select a compiler


2. После некоторого ожидания CMake должен выделить всё красным - это те переменные, которые были добавлены скриптами cmake из SVN. То есть, это нормально, если в конце написано "Configuring done".

Теперь нужно изменить некоторые флажки:
WITH_MYSQL = true (если компилируем с поддержкой MySQL)
WITH_WIN32_GUI = false (хоть это и винда, но графический интерфейс будет съедать свою долю ресурсов, поэтому сервер должен быть консольным)
ANSI=false (отключить строгую проверку ANSI при использовании MySQL, из-за недопустимых типов "long long")
CMAKE_INSTALL_PREFIX = "" (пустое значение, чтобы конфиг открывался не из Program files, а из папки с PvPGN)


Нажать ещё раз Configure, но теперь красным выделятся ошибки в путях к заголовочным файлам MySQL, которые надо вручную указать:
MYSQL_INCLUDE_DIR = C:/svn/pvpgn/mysql
MYSQL_LIBRARY = C:/svn/pvpgn/mysql/libmySQL.lib


CMake configure CMake configure MySQL


После нажатия Configure, некоторые переменные сразу "пропадают" и недоступны для редактирования. Чтобы отобразить весь список переменных, достаточно включить флажок Advanced.

CMake кеширует все результаты, поэтому, если что-то пошло не так, во избежание непонятных ошибок, - лучше сразу почистить кеш через File > Delete cache и запустить конфигурацию заново.

Пути для MySQL лучше выбирать через кнопочку "...", в експлорере. В CMake слеши почему-то не виндовые (\), а юниксовые (/); если поставить виндовые, то при компиляции возникнут ошибки которые потом трудно будет локализовать (например, такая).

В cmake файлах PvPGN`a устаревший поиск для MySQL, который ищет заголовочные файлы только в "Program files", и только для версий MySQL <= 5.0.
Чтобы это исправить, в файле pvpgn\cmake\Modules\FindMySQL.cmake, в разделе "FIND_PATH(MYSQL_INCLUDE_DIR mysql.h" можно добавить строчку "${CMAKE_SOURCE_DIR}/mysql", и поиск будет осуществляться так же, как для zlib - в папке с исходниками.


Затем нажимаем Generate, и папке build должен появиться солюшен pvpgn.sln

CMake generate Visual Studio solution


3. Открываем pvpgn.sln в Visual Studio и сразу переключаем режим компиляции в Release. Иначе, в исполняемые файлы запишется Debug код, они будут в несколько раз больше по размерам и чуть медленнее работать.

Visual Studio release mode


4. Данный шаг необходимо выполнить только для Visual Studio Express.
Скачайте vsexpress_include.zip из которого все файлы надо извлечь в отдельную папку.
Теперь для каждого из проектов (bnetd, d2cs, d2dbs) в свойствах необходимо указать путь к этой папке в Configuration properties > VC++ Directories > Include Directories.

Visual Studio project properties Visual studio project include path


Эти файлы я взял из Enterprise студии по пути: C:\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\
Если в проекте не указать к ним include path, то в VSExpress основные проекты (bnetd, d2cs, d2dbs) не скомпилируются из-за ошибки:
..\..\..\src\win32\resource.rc(12): fatal error RC1015: cannot open include file `afxres.h`.

В более ранних версиях Visual Studio "VC++ Directories" находится в настройках самой студии Tools > Options > Project and Solutions


5. Нажимаем правой кнопкой на проект ALL_BUILD и в меню выбираем Rebuild (это то же самое, что Clean + Build). Или можно выбрать отдельные проекты, если требуется скомпилировать что-то выборочно.

Visual Studio rebuild solution Visual Studio build success


6. Если все сделано в точности по данному туториалу, каждый проект должен скомпилироваться в отдельную папку. В моем случае, все появится в папке C:\svn\pvpgn\build\src\
Например, исполняемый файл PvPGN расположится здесь: C:\svn\pvpgn\build\src\bnetd\Release\bnetd.exe

Для запуска bnetd.exe необходимы 2 DLL файла:
zlibwapi.dll (из zlib123dll.zip)
libmysql.dll (клиентская библиотека mysql)


На этом все! Желаю успешной компиляции :)





[AVP] Присоединенные файлы (вирусов нет):

 nnieheayp
30 Апрель 2011, 11:42 | #302 
I did all this step. But, i found 1 failed.
Used MySQL 5.5.11, Microsoft Visual C++ Express 2010, Cmake 2.8.4 and revision 578.
Please help me.
nnieheayp@gmail.com

 HarpyWar
30 Апрель 2011, 13:54 | #303 
nnieheayp, if you are using PvPGN Magic Builder, you don`t need all these steps.
If you coundn`t compile a PvPGN with Buider, please, open build_pvpgn.bat and change var "set LOG=true" at beginning of the file. Start build_pvpgn.bat and *.log files should appear in the same directory when finished.
Send logs to harpywar@gmail.com

 xpeh
30 Апрель 2011, 22:15 | #304 
Адреса svn:
http://svn.berlios.de/svnroot/repos/pvpgn/trunk
svn://svn.berlios.de/pvpgn/trunk

 sarmoljubac
06 Май 2011, 19:14 | #305 
большая обучающая он работал, но вы знаете, как применять Шакар патч для иконки здесь место для патча http://developer.berlios.de/patch/index.php?func=detailpatch&patch_id=2832&group_id=2291
и ссылки на раздел
http://forums.pvpgn.org/index.php?topic=2329.0

 sarmoljubac
06 Май 2011, 19:16 | #306 
sry for my bad russian

 HarpyWar
07 Май 2011, 14:23 | #307 
Omg, it is not bad russian, it is very ugly and unclear russian! Better use English.
You have to use a TortoiseSVN or a PvPGN Magic Builder to apply patches (http://forums.pvpgn.org/index.php?topic=4460.msg18845#msg18845 - there a sample in the second paragraph how to apply this patch)

 Sarmoljubac
07 Май 2011, 16:57 | #308 
I`m learning russian in school but still i don`t know how to write it good so i used google translate

 Sarmoljubac
07 Май 2011, 18:09 | #309 
sry for new post but i removed trunk/pvpgn it said its done than in release file there isn`t pvpgnconsole either pvpgn i don`t know what to do after using pvpgn magic builder

 HarpyWar
07 Май 2011, 22:52 | #310 
Read the second comment on this page (to send logs on my email)

 Арслан
03 Август 2011, 17:03 | #318 
Я все сделал как вы и сказали, НО! bnet.exe запускается как пустое окно и панели меню, не каких действий!

 HarpyWar
04 Август 2011, 12:32 | #319 
Арслан, для запуска bnetd.exe необходимы дополнительные файлы и папки.

Проще, надежнее и в десятки раз быстрее собирать PvPGN через Magic Builder. Он создает папку release, в которой уже все готово для запуска.

 Леонид
30 Март 2012, 14:31 | #332 
А можноли скомпилировать pvpgn для unix с помошью этих программ?

 HarpyWar
01 Апрель 2012, 10:52 | #333 
Леонид, http://developer.berlios.de/docman/display_doc.php?docid=549&group_id=2291#Linux

 Леонид
02 Апрель 2012, 19:04 | #334 
HarpyWar битая ссылка)) и еше вапрос просто я в этом деле новичок я скачал pvpgn-magic-builder_v1.55 и СВН исходник в офф сайте pvpgn начал компиляцию и вылазиет кучу ошибок как так и если не сложно есть ли скомпилированый pvpgn-1.99 для ubuntu

 Леонид
02 Апрель 2012, 19:07 | #335 
И еше Microsoft Visual Studio 9.0

 CanTO
28 Ноябрь 2013, 13:05 | #358 
Не запускается bnetd.exe. В конце описания было написано что, для запуска требуются 2 файла dll. Я их переместил с MySQL. Но при перестроении в Visual Studio не получается запустить её. HarpyWar помоги с этой ошибкой

 HarpyWar
29 Ноябрь 2013, 11:57 | #359 
CanTO, рядом с bnetd.exe необходимо поместить все остальные файлы, которые требуются для запуска PvPGN. Их можно скачать на https://code.google.com/p/pvpgn-magic-builder/downloads/list

 CanTO
07 Декабрь 2013, 19:19 | #360 
Я поместил, но при запуске, он как то запускает слишком быстро и не поймёшь, что дальше делать. Как запустить сервер. HarpyWar помоги пожалуйста как запустить сервер?

 CanTO
14 Декабрь 2013, 22:00 | #361 
Я запустил все отлично, теперь бы только ссылку на нормальных ботов для pvpgn сервера и темку где описанно как создать лаунчер для своего сервера. А так же как сделать что бы другие могли войти к тебе на сервер

 BeK
24 Январь 2014, 16:36 | #373 
Скачал pvpgn-199.r577.win32 и настроил
Когда я открываю sbin
etd.exe не чё не случается.
не какие сообщение в проге

 BeK
26 Январь 2014, 08:02 | #374 
Как правильно установить pvpgn-199.r577.win32 а народ???

 BeK
26 Январь 2014, 08:04 | #375 

HarpyWar 04 Август 2011, 12:32 | #319
Арслан, для запуска bnetd.exe необходимы дополнительные файлы и папки.

Проще, надежнее и в десятки раз быстрее собирать PvPGN через Magic Builder. Он создает папку release, в которой уже все готово для запуска. (Сорри за флуд не заметел)

 Phoenix
23 Декабрь 2014, 22:37 | #392 
Как скачать файлы?
3. Скачать исходники PvPGN из SVN (с помощью TortoiseSVN), либо скачать их архивом (на сайте, в разделе "pvpgn (development)" )
Адрес SVN: svn://svn.berlios.de/pvpgn/trunk/pvpgn

ведь сайт не отвечает...

 GineX
23 Июнь 2016, 19:11 | #408 
pvpgn magic buleder ne udayotsa nayti cmake cho nada delat pomagite team veawer est


Есть вопросы по настройке игровых серверов? Добро пожаловать на форум!

Имя: Проверка: = 1159


© 2006—2017, HarpyWar

Любое копирование информации с этого сайта - только со ссылкой на источник.
Это в одинаковой мере распространяется на любую авторскую информацию в интернете.