Windows에서 OpenTTD를 빌드하는 방법
Windows 10에서 OpenTTD를 빌드하는 방법이다. 자세한 것은 COMPILING.md 파일을 참고하기 바란다.
-
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에서 '수정'을 선택하면 다시 체크하고 설치할 수 있다.
-
또한 cmake가 필요하므로 이것도 다운로드하여 설치한다. (아마도 Visual Studio를 설치할 때 같이 설치되는 것으로 보인다)
-
OpenTTD는 Windows에서 vcpkg를 이용해서 의존성 관리를 한다.
vcpkg의 READMEQuick Start
부분을 참고하여 vcpkg를 설치하거나 아래의 명령어를 입력하면 된다.
명령 프롬포트를 열고 적당히 내가 원하는 폴더 위치_(eg.C:\dev\
등)_로 진입한 뒤 아래 명령어를 입력하면C:\dev\vcpkg
에 vcpkg가 설치된다.git clone https://github.com/microsoft/vcpkg .\vcpkg\bootstrap-vcpkg.bat
-
빌드에 필요한 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
-
원하는 폴더로 진입한 뒤, OpenTTD 레포지토리를 복제한다:
git clone https://github.com/OpenTTD/OpenTTD.git
- JGR's Patch Pack을 가져오려면
git clone https://github.com/JGRenisson/OpenTTD-patches.git ./OpenTTD
를 위 명령어 대신 실행한다.
- JGR's Patch Pack을 가져오려면
-
복제한 레포지토리 폴더로 진입한다:
cd OpenTTD
-
아래 명령어를 입력하여 프로젝트 파일을 생성한다.
반드시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를 삭제
한 다음 위 명령어를 다시 실행하여 시도해보면 된다. -
build/openttd.sln 파일을 실행해보면 Visual Studio 가 실행되고 OpenTTD 프로젝트가 불러와진다.
상단 메뉴에서 [빌드] 메뉴를 찾으면 그 아래에Debug
,MinSizeRel
,Release
,RelWithDebInfo
를 선택할 수 있는데,Release
나RelWithDebInfo
를 선택하고 _빌드 > 솔루션 빌드_를 실행하면 이제 OpenTTD가 빌드되기 시작한다.
-
Let's Encrypt 인증서 발급 (certonly)
Let's Encrypt 인증서는 무료로 사용할 수 있는 인증서로, 무료가 장점이지만 3개월마다 재발급해주어야 하는 것이 단점이다. 재발급은 crontab과 같은 스케쥴러를 이용하면 되므로 결국 우리는 무료+기한없이 SSL 인증서를 웹 서버에 사용할 수 있다. 여기에서는 Let's Encrypt 인증서를 인증서만 발급(certonly)받아 Apache ...
-
Windows에서 OpenTTD를 빌드하는 방법
Windows 10에서 OpenTTD를 빌드하는 방법이다. 자세한 것은 COMPILING.md 파일을 참고하기 바란다. Windows에서 OpenTTD를 빌드하기 위해서는 Visual Studio 2017 이상이 필요하다. 2022년 기준으로 Visual Studio 2022가 나와있으므로 그걸 설치한다. Visual Studio Community 버전 ...
-
블로그 마이그레이션
블로그를 jekyll에서 Laravel로 마이그레이션했습니다. jekyll도 훌륭한 도구이지만 아무래도 자주 포스팅하는 입장이 아니다보니 포스트를 Markdown으로 작성한 뒤에 bundle exec jekyll build를 입력하고 Github에 push 하는 것이 여간 귀찮은 일이 아니었습니다. 2021/12/19에 simplePHPRouter를 이용 ...
-
[PHP] 참조(reference)를 이용해서 재귀함수 없이 row data를 계층형 배열로 가공
카테고리나 답댓글이 있는 댓글 등과 같이 계층형 구조를 가져야 하는 경우, 보통 각 row data를 [no, name, parent, ...] 형식으로 저장하는데 이를 참조(reference)를 이용해서 재귀함수를 사용하지 않고 계층형 배열로 가공하는 방법이다. 예를 들어 아래와 같은 데이터를: //no name parent [1, ...