BUILDING.md 읽고 그대로 따라하면 될 줄 알았는데… 이상한 오류가 나서 한참 헤맸다.

GameNetworkingSockets

Valve에서 오픈소스로 공개한 UDP 소켓을 게임용으로 추상화한 라이브러리.

GitHub: ValveSoftware/GameNetworkingSockets

TCP처럼 Connection 기반으로 돌아가나, 내부 소켓은 UDP를 사용하고, message 단위로 자르는 작업을 알아서 해 준다.
그리고 Reliable과 Unreliable한 메시지 둘 다 보낼 수 있다.

빌드 문제

미리 컴파일된 버전을 써도 되지만, ICE 등의 P2P 기능을 쓰려면 직접 빌드해야 하는 것 같아서 빌드를 하기로 했다.

일단 64비트 Windows에서 BUILDING.md를 읽으며 그대로 따라해봤는데… 참 많은 오류를 겪었다.
미래에 같은 실수를 반복하지 않도록 겪었던 문제들을 적어놓는다.

  • 서브모듈 가져왔는지 확인할 것
    • 해결책: git submodule update --init
  • 외부 폴더에 있는 vcpkg를 사용할 시, 툴체인 위치 명시가 필요
    • 해결책: -DCMAKE_TOOLCHAIN_FILE=path/to/vcpkg/scripts/buildsystems/vcpkg.cmake
  • 반드시 64비트 버전의 Visual C++ 컴파일러를 사용하도록 하기 (cl.exe)
    • Developer PowerShell for VS 2022를 썼는데, 여기 cl.exe는 x86 컴파일러가 사용됨
      • 임시적인 해결책
        1. 일반 Powershell을 실행
        2. 아래 명령을 실행 (Visual Studio 버전 및 설치 위치에 따라 적절히 변경할 것)
           &{Import-Module "C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/Tools/Microsoft.VisualStudio.DevShell.dll"; Enter-VsDevShell -VsInstallPath "C:/Program Files/Microsoft Visual Studio/2022/Community" -SkipAutomaticLocation -DevCmdArguments "-arch=x64 -host_arch=x64"}
          
          • 안타깝게도, 이 명령을 그냥 Developer Powershell for VS 2022 바로가기 링크에 넣을 수가 없음. 명령이 너무 길어서 잘림…
        3. 이제 64비트 컴파일러가 제대로 잡힘.
      • 영구적인 해결책
        • 아예 VSCode settings.json에다가 64비트 Developer Powershell 터미널을 실행할 수 있도록 넣어 놓기
            "terminal.integrated.profiles.windows": {
                "PowerShell (VS Dev)": {
                "args": [
                    "-noe",
                    "-c",
                    "&{Import-Module \"C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/Tools/Microsoft.VisualStudio.DevShell.dll\"; Enter-VsDevShell -VsInstallPath \"C:/Program Files/Microsoft Visual Studio/2022/Community\" -SkipAutomaticLocation -DevCmdArguments \"-arch=x64 -host_arch=x64\"}"
                ],
                "source": "PowerShell",
                "icon": "terminal-powershell"
                }
            }
          
    • 개발 환경에 있는 MinGW-w64 GCC가 대신 사용되어버림
      • 해결책: -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl
      • 그런데 이건 위에서 64비트 VS Developer Powershell 설정을 하면 나는게 비정상.
        혹시 일반 Powershell에서 잘못 실행하는 게 아닌지 확인할 것.
    • Could not find OpenSSL, Protobuf…
      • CMake 툴체인 파일 명시하는 데 오타 났는지 다시 한번 확인할 것.

마지막 수정 : 2025-02-21 13:56:00 +0900