Компиляция OpenTTD
Необходимые/необязательные библиотеки
OpenTTD использует следующие внешние библиотеки:
Для Linux используются следующие дополнительные библиотеки:
Если вы создаёте выделенный сервер, вам не нужны последние четыре.
OpenTTD не требует наличия каких-либо библиотек, но без liblzma вы не сможете открыть большинство последних сохранённых игр и без zlib — большинство старых сохранённых игр или использовать систему загрузки контента.
Windows
Вам нужна Microsoft Visual Studio 2022 или более поздняя версия.
Вы можете скачать бесплатную версию Visual Studio Community Edition от Microsoft по адресу https://visualstudio.microsoft.com/vs/community/.
OpenTTD нужен Platform SDK, если он ещё не установлен. Это можно сделать во время установки Visual Studio, выбрав «Visual C++ MFC для x86 и x64» (и, возможно, «Visual C++ ATL для x86 и x64», в зависимости от вашей версии). Если нет, вы можете загрузить его как MS Windows Platform SDK (https://developer.microsoft.com/en-us/windows/downloads/windows-sdk).
Установите SDK, следуя инструкциям.
Зависимости для OpenTTD в Windows обрабатываются через vcpkg (https://github.com/Microsoft/vcpkg/). Сначала вам нужно установить vcpkg, следуя инструкции «Quick Start» из файла README (https://github.com/Microsoft/vcpkg/blob/master/README.md).
После этого вы можете установить необходимые зависимости. Мы рекомендуем использовать статические версии, и в настоящее время OpenTTD требуется следующее:
Чтобы установить варианты x64 (64-битные) и x86 (32-битные), хотя необходим только один из них, вы можете использовать:
.\vcpkg install --triplet=x64-windows-static
.\vcpkg install --triplet=x86-windows-static
Вы можете открыть папку (как проект CMake). CMake будет обнаружен, и вы сможете скомпилировать оттуда. Если библиотеки установлены, но не найдены, вам необходимо установить VCPKG_TARGET_TRIPLET в параметрах CMake. Для Visual Studio 2022 также необходимо установить CMAKE_TOOLCHAIN_FILE. (Типичные значения показаны в примере командной строки файла проекта MSVC).
В качестве альтернативы вы можете создать файл проекта MSVC через CMake. Для этого либо скачайте CMake с сайта https://cmake.org/download/, либо используйте версию, которая поставляется с vcpkg. После этого вы можете запустить что-то похожее на это:
mkdir build
cd build
cmake.exe .. -G"Visual Studio 17 2022" -DCMAKE_TOOLCHAIN_FILE="<location of vcpkg>\vcpkg\scripts\buildsystems\vcpkg.cmake" -DVCPKG_TARGET_TRIPLET="x64-windows-static"
Измените <location of vcpkg>
на место, где вы установили vcpkg. После этого в папке сборки находятся файлы проекта MSVC. MSVC может самостоятельно перестроить файлы проектов через проект ZERO_CHECK.
Все остальные платформы
Минимальная требуемая версия CMake — 3.16. По умолчанию это создаёт сборку Debug с включёнными утверждениями. Это гораздо более медленная сборка, чем релизные сборки.
mkdir build
cd build
cmake ..
make
Для получения дополнительной информации о том, как использовать CMake (включая создание релизных сборок), мы настоятельно рекомендуем прочитать их превосходное руководство (https://cmake.org/cmake/help/latest/guide/user-interaction/index.html).
Параметры CMake
Через CMake можно влиять на различные параметры, чтобы получить разные типы сборок.
-DCMAKE_BUILD_TYPE=RelWithDebInfo
: создать релизную сборку. Это значительно быстрее, чем... Отладочная сборка, но с гораздо менее полезной информацией в случае сбоя.
-DOPTION_DEDICATED=ON
: сборка OpenTTD без графического интерфейса. Полезно, если вы используете автономный сервер, так как для работы требуется меньше библиотек.
-DOPTION_USE_ASSERTS=OFF
: отключить утверждения. Используйте с осторожностью, поскольку утверждения фиксируют первые признаки проблемы. В релизных сборках они по умолчанию отключены.
-DOPTION_TOOLS_ONLY=ON
: собрать только инструменты вроде strgen
. Сама игра не собирается. Полезно для кросс-компиляции.
Любой компилятор, поддерживаемый CMake и C++20, должен иметь возможность компилировать OpenTTD. Поскольку точный список компиляторов постоянно меняется, обратитесь к руководству компилятора, чтобы узнать, поддерживает ли он C++20, и к CMake, чтобы проверить поддержку вашего компилятора.
Чтобы перекомпилировать дополнительную графику, необходимую для игры с оригинальной графикой Transport Tycoon Deluxe, также потребуется GRFCodec (который включает NFORenum). GRFCodec можно найти по адресу: https://www.openttd.org/downloads/grfcodec-releases/latest.html.
Установленный GRFCodec может вызвать регенерацию файлов .grf
, которые записываются в исходный каталог. Это может привести к изменению состояния репозитория, поскольку разные версии GRFCodec могут вызывать двоичные различия в результирующих файлах .grf
. Также могли быть добавлены переводы для базовых наборов, которые ещё не включены в информационные файлы базового набора. Чтобы избежать такого поведения, отключите GRFCodec (и NFORenum) в кэше CMake (GRFCODEC_EXECUTABLE
и NFORENUM_EXECUTABLE
).
Вы можете управлять некоторыми флагами напрямую через CXXFLAGS
(также подойдёт любая комбинация этих флагов):
-DRANDOM_DEBUG
: помогает при отладке рассинхронизации.-fno-inline
: избегает создания встроенных функций; это может значительно упростить отладку.-O0
: отключает все оптимизации; это может значительно упростить отладку.-p
: включает профилирование.Всегда используйте чистую папку сборки, если меняете CXXFLAGS
, иначе это значение будет кэшироваться. Пример использования:
CXXFLAGS="-fno-inline" cmake ..
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )