Windows에서 OpenTTD를 빌드하는 방법

Written by TELK on 2022.06.25

Windows 10에서 OpenTTD를 빌드하는 방법이다. 자세한 것은 COMPILING.md 파일을 참고하기 바란다.

  1. Windows에서 OpenTTD를 빌드하기 위해서는 Visual Studio 2017 이상이 필요하다. 2022년 기준으로 Visual Studio 2022가 나와있으므로 그걸 설치한다.
    Visual Studio Community 버전을 다운로드해서 설치한다.
    설치할 때에는 최신 v143 빌드 도구용 MFC(x86 및 x64)를 체크하고 가능하면 최신 v143 빌드 도구용 C++ ATL(x86 및 x64)도 체크하고 설치한다.
    빼먹고 설치한 경우, Visual Studio 설치 파일을 다시 실행하고 Visual Studio 2022에서 '수정'을 선택하면 다시 체크하고 설치할 수 있다.

  2. 또한 cmake가 필요하므로 이것도 다운로드하여 설치한다. (아마도 Visual Studio를 설치할 때 같이 설치되는 것으로 보인다)

  3. OpenTTD는 Windows에서 vcpkg를 이용해서 의존성 관리를 한다.
    vcpkg의 README Quick Start 부분을 참고하여 vcpkg를 설치하거나 아래의 명령어를 입력하면 된다.
    명령 프롬포트를 열고 적당히 내가 원하는 폴더 위치_(eg. C:\dev\ 등)_로 진입한 뒤 아래 명령어를 입력하면 C:\dev\vcpkg에 vcpkg가 설치된다.

    git clone https://github.com/microsoft/vcpkg
    .\vcpkg\bootstrap-vcpkg.bat


  4. 빌드에 필요한 Dependency를 설치한다.
    윗줄은 x64용이고 아랫줄은 x86용인데 보통은 x64만 설치해도 된다.
    OpenTTD는 static 버전을 설치하는 것을 권장하고, 아래의 dependency가 필요하다:

    • liblzma
    • libpng
    • lzo
    • zlib
.\vcpkg\vcpkg install liblzma:x64-windows-static libpng:x64-windows-static lzo:x64-windows-static zlib:x64-windows-static
.\vcpkg\vcpkg install liblzma:x86-windows-static libpng:x86-windows-static lzo:x86-windows-static zlib:x86-windows-static


  1. 원하는 폴더로 진입한 뒤, OpenTTD 레포지토리를 복제한다:

    git clone https://github.com/OpenTTD/OpenTTD.git
    • JGR's Patch Pack을 가져오려면 git clone https://github.com/JGRenisson/OpenTTD-patches.git ./OpenTTD 를 위 명령어 대신 실행한다.


  2. 복제한 레포지토리 폴더로 진입한다:

    cd OpenTTD


  3. 아래 명령어를 입력하여 프로젝트 파일을 생성한다.
    반드시 CMAKE_TOOLCHAIN_FILE 값을 지정해야 한다. (vcpkg를 _C:\Dev_에 설치한 경우 -DCMAKE_TOOLCHAIN_FILE="C:/Dev/scripts/buildsystems/vcpkg.cmake 로 입력하면 된다.)
    또한 4번 단계에서 static으로 설치하지 않은 경우 VCPKG_TARGET_TRIPLET을 적절히 수정해줘야 한다.
    -G "Visual Studio 17 2022" 부분은 Visual Studio 2022를 설치했을 때의 값으로, 2019를 설치한 경우에는 -G "Visual Studio 16 2019" 와 같이 수정해줘야 한다

    mkdir build
    cd build
    cmake.exe .. -G "Visual Studio 17 2022" -DCMAKE_TOOLCHAIN_FILE="<vcpkg가 설치된 폴더>/scripts/buildsystems/vcpkg.cmake" -DVCPKG_TARGET_TRIPLET="x64-windows-static"

    이 단계에서 Could NOT find ZLIB, Could NOT find LibLZMA 등의 메시지가 뜬다면 CMAKE_TOOLCHAIN_FILE이나 VCPKG_TARGET_TRIPLET 값을 잘못 지정했거나
    이미 사전에 cmake cache가 남아있는 경우일 수 있으므로
    (1) CMAKE_TOOLCHAIN_FILE이나 VCPKG_TARGET_TRIPLET 값을 확인하거나
    (2) build 폴더 안의 내용물을 모두 삭제하여 cmake cache를 삭제
    한 다음 위 명령어를 다시 실행하여 시도해보면 된다.

  4. build/openttd.sln 파일을 실행해보면 Visual Studio 가 실행되고 OpenTTD 프로젝트가 불러와진다.
    상단 메뉴에서 [빌드] 메뉴를 찾으면 그 아래에 Debug, MinSizeRel, Release, RelWithDebInfo를 선택할 수 있는데, ReleaseRelWithDebInfo를 선택하고 _빌드 > 솔루션 빌드_를 실행하면 이제 OpenTTD가 빌드되기 시작한다.