В этом руководстве рассматривается подробная пошаговая компиляция исходников сервера 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\, с заменой:
Открыть файл pvpgn\cmake\Modules\DefineInstallationPaths.cmake, найти строчку "${EXEC_INSTALL_PREFIX}/etc" и изменить её на "${EXEC_INSTALL_PREFIX}conf"
Если же оставить как есть, то CMake заменит пути в конфигах на абсолютные, типа "C:\Program files\pvpgn\conf\", и PvPGN будет искать их только там. А конфиг будет искаться в папке etc. Это сделано для UNIX систем и установлено по-умолчанию.
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 в качестве компилируемой среды:
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, которые надо вручную указать:
После нажатия 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
3. Открываем pvpgn.sln в Visual Studio и сразу переключаем режим компиляции в Release. Иначе, в исполняемые файлы запишется Debug код, они будут в несколько раз больше по размерам и чуть медленнее работать.
4. Данный шаг необходимо выполнить только для Visual Studio Express.
Скачайте vsexpress_include.zip из которого все файлы надо извлечь в отдельную папку.
Теперь для каждого из проектов (bnetd, d2cs, d2dbs) в свойствах необходимо указать путь к этой папке в Configuration properties > VC++ Directories > Include Directories.
Эти файлы я взял из 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). Или можно выбрать отдельные проекты, если требуется скомпилировать что-то выборочно.
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)
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
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
большая обучающая он работал, но вы знаете, как применять Шакар патч для иконки здесь место для патча http://developer.berlios.de/patch/index.php?func=detailpatch&patch_id=2832&group_id=2291
и ссылки на раздел
http://forums.pvpgn.org/index.php?topic=2329.0
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)
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 битая ссылка)) и еше вапрос просто я в этом деле новичок я скачал pvpgn-magic-builder_v1.55 и СВН исходник в офф сайте pvpgn начал компиляцию и вылазиет кучу ошибок как так и если не сложно есть ли скомпилированый pvpgn-1.99 для ubuntu
Не запускается bnetd.exe. В конце описания было написано что, для запуска требуются 2 файла dll. Я их переместил с MySQL. Но при перестроении в Visual Studio не получается запустить её. HarpyWar помоги с этой ошибкой
CanTO, рядом с bnetd.exe необходимо поместить все остальные файлы, которые требуются для запуска PvPGN. Их можно скачать на https://code.google.com/p/pvpgn-magic-builder/downloads/list
Я поместил, но при запуске, он как то запускает слишком быстро и не поймёшь, что дальше делать. Как запустить сервер. HarpyWar помоги пожалуйста как запустить сервер?
Я запустил все отлично, теперь бы только ссылку на нормальных ботов для pvpgn сервера и темку где описанно как создать лаунчер для своего сервера. А так же как сделать что бы другие могли войти к тебе на сервер
HarpyWar 04 Август 2011, 12:32 | #319
Арслан, для запуска bnetd.exe необходимы дополнительные файлы и папки.
Проще, надежнее и в десятки раз быстрее собирать PvPGN через Magic Builder. Он создает папку release, в которой уже все готово для запуска. (Сорри за флуд не заметел)
Как скачать файлы?
3. Скачать исходники PvPGN из SVN (с помощью TortoiseSVN), либо скачать их архивом (на сайте, в разделе "pvpgn (development)" )
Адрес SVN: svn://svn.berlios.de/pvpgn/trunk/pvpgn
Ошибка 223 error C1083: Не удается открыть файл включение: mysql.h: No such file or directory F:\svn\pvpgn\src\bnetd\sql_mysql.cpp 27
Как Решат Помогите то
Есть вопросы по настройке игровых серверов? Добро пожаловать на форум!
Любое копирование информации с этого сайта - только со ссылкой на источник. Это в одинаковой мере распространяется на любую авторскую информацию в интернете.
Used MySQL 5.5.11, Microsoft Visual C++ Express 2010, Cmake 2.8.4 and revision 578.
Please help me.
nnieheayp@gmail.com