Ru/Compiling under Linux: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
m (Converted {{otherlang2}} to {{lang}}. Also updated links.)
(Обновлен перевод)
Line 7: Line 7:
{{note:ru|На данной странице предполагается что вы создаёте для [[Source 2007]] года (Orange Box).}}
{{note:ru|На данной странице предполагается что вы создаёте для [[Source 2007]] года (Orange Box).}}


Создание на Linux требует проект Visual Studio, который сконвертируется (преобразуется) в makefile с помощью <code>vcpm</code> от Valve ("Visual C++ Project to Make").
Для сборки на Linux требуется существующий проект Visual Studio, который преобразуется в makefile с помощью инструмента Valve <code>vcpm</code> ("Visual C++ Project to Make").


== Получение Linux ==
== Получение Linux ==


Если вы не уверены какую версию Linux использовать, то зайдите на [http://www.ubuntu.com/ Ubuntu], там вы сможете определить какая версия подходит вам. Он имеет собственный "софт-центр" что сделает установку пакетов проще и может быть запущен с компакт-диска (CD) если вы захотите поэкспериментировать. (but you'll want to install it permanently before you start digging in).
Если вы не знаете, какую версию Linux использовать, остановитесь на [http://www.ubuntu.com/ Ubuntu], которая старается быть удобной для пользователя. В ней есть "программный центр", который упрощает установку пакетов, и ее можно запустить с компакт-диска, если вы хотите поэкспериментировать (но вы захотите установить ее на постоянной основе, прежде чем начать копаться в ней).


== Требования ==
== Требования ==


* [https://gcc.gnu.org GCC and G++] или ниже.
* [http://gcc.gnu.org GCC и G++ 4.2.x] или ниже.
* [[Vprojtomake 2010]] '''или''' [http://xml.apache.org/xerces-c/ Xerces XML parser] 2.8.x
* [[Vprojtomake 2010]] '''или''' [http://xml.apache.org/xerces-c/ Xerces XML parser] 2.8.x
* <code>libstdc++</code> 6
* <code>libstdc++</code> 6
* <code>libc</code> 2.4 или выше.
* <code>libc</code> 2.4 или выше.


Если у вас 64-битный Linux:
Если вы используете 64-битный Linux:


* <code>ia32-libs</code> (иначе вам скажут что 32-битные бинары (двоичные коды) не доступны)
* <code>ia32-libs</code> (или вам будет сказано, что 32-битных двоичных файлов не существует)
* GCC multilib for your GCC release
* GCC multilib для вашего выпуска GCC.
* Убедитесь что у вас 32-битная сборка от Xerces, если вы её еще не обновили до сборки от Vprojtomake 2010 года.
* Убедитесь, что у вас есть 32-битная сборка Xerces, если вы не обновились до Vprojtomake 2010.


== Установка/Настройка ==
== Установка/Настройка ==
Line 30: Line 30:
{{bug:ru|Не используйте <code>~(тильду)</code> для вашей домашней директории. Части процесса создания могут не понять её.}}
{{bug:ru|Не используйте <code>~(тильду)</code> для вашей домашней директории. Части процесса создания могут не понять её.}}


Откройте <code>sdk_root/linux_sdk/Makefile</code>. Большинство настроек просты, за исключением:
Откройте <code>sdk_root/linux_sdk/Makefile</code>. Большинство опций конфигурации здесь просты, за исключением:


; <code>MOD_CONFIG</code>
; <code>MOD_CONFIG</code>
: Эти значения должны быть прямо из вашего VS проекта. Удалите все незаполненное пространство(пробелы). To build the 'My Server' project in release mode, this should read <code>MyServer_ReleaseWin32</code>.
: Эти значения должны быть взяты прямо из вашего проекта VS. Удалите все пробелы. Чтобы собрать проект 'My Server' в режиме релиза, это значение должно быть <code>MyServer_ReleaseWin32</code>.
; <code>GAME_DIR</code>
; <code>GAME_DIR</code>
: Чтобы настроить это, вам нужно скачать [[dedicated server]] от Valve. А так же понадобится игра из <code>orangebox</code>.
: Чтобы получить это, вам нужно загрузить [[dedicated server]] от Valve. Вам нужна игра <code>orangebox</code>.
; <code>CC</code>, <code>CPLUS</code>, <code>CLINK</code>
; <code>CC</code>, <code>CPLUS</code>, <code>CLINK</code>
: Change these to read "gcc -m32" or "g++ -m32", with quotes. If your system's default build of GCC is too recent, specify an older version with "gcc-4.2 -m32" or similar; check <code>/usr/bin</code> to see what you've got installed.
: Измените их на "gcc -m32" или "g++ -m32" с кавычками. Если сборка GCC по умолчанию в вашей системе слишком свежая, укажите более старую версию с помощью "gcc-4.2 -m32" или аналогичной; проверьте <code>/usr/bin</code>, чтобы узнать, что у вас установлено.
; <code>CPP_LIB</code>
; <code>CPP_LIB</code>
: These files may not be where Valve think they are. To find them, browse to <code>/usr/lib</code> and search. 64-bit users will encounter two version of each file; choose the ones in the '32' folder.
: Эти файлы могут находиться не там, где думает Valve. Чтобы найти их, перейдите в <code>/usr/lib</code> и выполните поиск. 64-битные пользователи столкнутся с двумя версиями каждого файла; выбирайте те, что находятся в папке '32'.


* [[Server plugin]] нужна дополнительная настройка. О том как её сделать можно узнать здесь: [[Server_plugins#Compiling]].
* [[Server plugin]] нужна дополнительная настройка. О том как её сделать можно узнать здесь: [[Server_plugins#Compiling]].
Line 57: Line 57:
== Запуск ==
== Запуск ==


To run the mod perform <code>make install</code> to copy the server binary to your mod's folder, then cd into your dedicated server folder and do <code>./srcds_run</code> with the appropriate <code>-game</code> parameter.
Для запуска мода выполните <code>make install</code>, чтобы скопировать двоичный файл сервера в папку вашего мода, затем перейдите в папку вашего выделенного сервера и выполните <code>./srcds_run</code> с соответствующим параметром <code>-game</code>.


<!-- 2.4 was released in 2006, and can be assumed present on modern-day Linux systems
<!-- 2.4 was released in 2006, and can be assumed present on modern-day Linux systems
== libc ==
== libc ==


The version of the C runtime library on a system running your server code can affect stability. To look at the requirements of your binary, examine the last section of the output of this command:
Версия библиотеки C на системе, на которой выполняется ваш серверный код, может влиять на стабильность. Чтобы узнать требования вашего двоичного файла, изучите последний раздел вывода этой команды:


<source lang=bash>
<source lang=bash>
Line 68: Line 68:
</source>
</source>


The highest version of GLIBC reported is the one that your binary requires. You will have to consider where to draw the line between backwards-compatibility and functionality; as the SDK stands the highest version you will see is probably 2.4, [http://ftp.gnu.org/gnu/glibc/?C=M;O=D which was released in 2006] and is highly likely to be present on target systems.
Самая высокая версия GLIBC, о которой сообщается, это та, которую требует ваш двоичный файл. Вам придется подумать, где провести границу между обратной совместимостью и функциональностью; в SDK самая высокая версия, которую вы увидите, вероятно, будет 2.4, [http://ftp.gnu.org/gnu/glibc/?C=M;O=D, которая была выпущена в 2006 году] и с большой вероятностью будет присутствовать на целевых системах.


If you want to see precisely which functions require a given version of libc, run the following:
Если вы хотите точно узнать, для каких функций требуется та или иная версия libc, выполните следующее:


<source lang=bash>
<source lang=bash>

Revision as of 11:00, 9 October 2021

English (en)Русский (ru)中文 (zh)Translate (Translate)
Broom icon.png
This article or section needs to be cleaned up to conform to a higher standard of quality.
For help, see the VDC Editing Help and Wikipedia cleanup process. Also, remember to check for any notes left by the tagger at this article's talk page.

Создание Linux сборки вашего многопользовательского dedicated server или server plugin не требуется, но это повышает её шанс на использование операторами рекламных серверов.

Template:Note:ru

Для сборки на Linux требуется существующий проект Visual Studio, который преобразуется в makefile с помощью инструмента Valve vcpm ("Visual C++ Project to Make").

Получение Linux

Если вы не знаете, какую версию Linux использовать, остановитесь на Ubuntu, которая старается быть удобной для пользователя. В ней есть "программный центр", который упрощает установку пакетов, и ее можно запустить с компакт-диска, если вы хотите поэкспериментировать (но вы захотите установить ее на постоянной основе, прежде чем начать копаться в ней).

Требования

Если вы используете 64-битный Linux:

  • ia32-libs (или вам будет сказано, что 32-битных двоичных файлов не существует)
  • GCC multilib для вашего выпуска GCC.
  • Убедитесь, что у вас есть 32-битная сборка Xerces, если вы не обновились до Vprojtomake 2010.

Установка/Настройка

Template:Bug:ru

Откройте sdk_root/linux_sdk/Makefile. Большинство опций конфигурации здесь просты, за исключением:

MOD_CONFIG
Эти значения должны быть взяты прямо из вашего проекта VS. Удалите все пробелы. Чтобы собрать проект 'My Server' в режиме релиза, это значение должно быть MyServer_ReleaseWin32.
GAME_DIR
Чтобы получить это, вам нужно загрузить dedicated server от Valve. Вам нужна игра orangebox.
CC, CPLUS, CLINK
Измените их на "gcc -m32" или "g++ -m32" с кавычками. Если сборка GCC по умолчанию в вашей системе слишком свежая, укажите более старую версию с помощью "gcc-4.2 -m32" или аналогичной; проверьте /usr/bin, чтобы узнать, что у вас установлено.
CPP_LIB
Эти файлы могут находиться не там, где думает Valve. Чтобы найти их, перейдите в /usr/lib и выполните поиск. 64-битные пользователи столкнутся с двумя версиями каждого файла; выбирайте те, что находятся в папке '32'.

Создание

Если все настроено правильно, вы можете начать создание собственного мода, перейдя в папку linux_sdk и запустив файл make.

Template:Note:ru

Запуск

Для запуска мода выполните make install, чтобы скопировать двоичный файл сервера в папку вашего мода, затем перейдите в папку вашего выделенного сервера и выполните ./srcds_run с соответствующим параметром -game.