Skip to main content

빌드 가이드 (Windows)

사용자 정의 Electron 바이너리를 생성하기 위해 Windows에서 Electron 자체를 빌드하는 방법을 안내한다. 미리 빌드된 Electron 바이너리와 함께 앱 코드를 번들링하고 배포하는 방법은 애플리케이션 배포 가이드를 참고한다.

필수 조건

  • Windows 10 / Server 2012 R2 이상
  • Visual Studio 2019 (16.0.0 이상)로 빌드할 수 있지만, Visual Studio 2022 (17.0.0 이상)를 권장한다. Visual Studio 2022 Community Edition 무료 다운로드
    • 필요한 Visual Studio 컴포넌트에 대한 자세한 내용은 Chromium 빌드 문서를 참고한다.
    • Visual Studio가 기본 경로가 아닌 다른 디렉터리에 설치된 경우, 툴체인이 설치 경로를 찾을 수 있도록 몇 가지 환경 변수를 설정해야 한다.
      • vs2022_install = DRIVE:\path\to\Microsoft Visual Studio\2022\Community에서 2022Community를 설치한 버전에 맞게 변경하고, DRIVE:를 Visual Studio가 설치된 드라이브로 바꾼다. 일반적으로 C: 드라이브다.
      • WINDOWSSDKDIR = DRIVE:\path\to\Windows Kits\10에서 DRIVE:를 Windows Kits가 설치된 드라이브로 바꾼다. 일반적으로 C: 드라이브다.
  • Node.js
  • Git
  • 전체 배포판을 생성할 계획이라면 Windows SDK 10.0.15063.468의 Debugging Tools for Windows가 필요하다. .pdb 파일에서 심볼 저장소를 생성하기 위해 symstore.exe를 사용하기 때문이다.
    • 서로 다른 버전의 SDK를 동시에 설치할 수 있다. SDK를 설치하려면 Visual Studio Installer를 열고 수정개별 구성 요소를 선택한 후, 아래로 스크롤해 적절한 Windows SDK를 선택해 설치한다. 또는 Windows SDK 및 에뮬레이터 아카이브에서 독립 실행형 SDK 버전을 다운로드할 수도 있다.
    • SDK Debugging Tools도 설치해야 한다. Windows 10 SDK가 Visual Studio Installer를 통해 설치된 경우, 제어판프로그램프로그램 및 기능 → "Windows 소프트웨어 개발 키트" 선택 → 변경변경 → "Debugging Tools For Windows" 체크 → 변경을 통해 설치할 수 있다. 또는 독립 실행형 SDK 설치 프로그램을 다운로드해 Debugging Tools를 설치할 수도 있다.

현재 Windows가 설치되어 있지 않다면, developer.microsoft.com에서 Electron을 빌드할 수 있는 시간 제한 버전의 Windows를 사용할 수 있다.

Electron 빌드는 전적으로 커맨드라인 스크립트로 수행되며, Visual Studio로는 빌드할 수 없다. 어떤 편집기로도 Electron을 개발할 수 있지만, Visual Studio를 통한 빌드 지원은 추후 제공될 예정이다.

참고: Visual Studio가 빌드에 사용되지는 않지만, 여전히 필수다. 빌드 툴체인이 필요하기 때문이다.

Windows Security에서 소스 트리 제외하기

Windows Security는 Chromium 소스 코드 내 특정 파일을 문제로 간주한다 (참고: https://crbug.com/441184). 이로 인해 해당 파일이 지속적으로 삭제되며, gclient sync 명령 실행 시 문제가 발생할 수 있다. Windows Security의 모니터링에서 소스 트리를 제외하려면 다음 가이드를 따라 설정을 변경하면 된다.

빌드

GN 빌드 안내서를 참고한다.

32비트 빌드

32비트 타겟을 빌드하려면 GN 인자로 target_cpu = "x86"를 전달해야 한다. 64비트 타겟과 함께 32비트 타겟을 빌드하려면 GN의 출력 디렉터리를 다르게 설정하면 된다. 예를 들어 out/Release-x86와 같은 디렉터리를 사용하고, 각각 다른 인자를 전달할 수 있다.

$ gn gen out/Release-x86 --args="import(\"//electron/build/args/release.gn\") target_cpu=\"x86\""

나머지 빌드 단계는 동일하다.

Visual Studio 프로젝트 생성

Visual Studio 프로젝트를 생성하려면 gn gen 명령어에 --ide=vs2017 파라미터를 추가한다:

$ gn gen out/Testing --ide=vs2017

문제 해결

xxxx 명령어를 찾을 수 없음

Command xxxx not found와 같은 오류가 발생하면, VS2015 Command Prompt 콘솔을 사용해 빌드 스크립트를 실행해 볼 수 있다.

치명적인 내부 컴파일러 오류: C1001

최신 Visual Studio 업데이트가 설치되어 있는지 확인하세요.

LNK1181: 'kernel32.lib' 입력 파일을 열 수 없음

32비트 Node.js를 다시 설치해 보세요.

오류: ENOENT, 'C:\Users\USERNAME\AppData\Roaming\npm' 경로를 찾을 수 없음

해당 디렉터리를 생성하면 문제를 해결할 수 있다:

$ mkdir ~\AppData\Roaming\npm

node-gyp가 내부 또는 외부 명령으로 인식되지 않는다는 오류가 발생할 수 있다. 이 문제는 Git Bash를 사용해 빌드할 때 발생한다. 이 경우 PowerShell이나 VS2015 커맨드 프롬프트를 대신 사용해야 한다.

'...' 디렉토리를 생성할 수 없음: 파일 이름이 너무 깁니다

Node.js는 매우 긴 경로 이름을 사용하는 경우가 있습니다. 기본적으로 Windows의 Git은 긴 경로 이름을 올바르게 처리하지 못합니다(Windows 자체는 이를 지원함). 이 문제를 해결하려면 다음 명령어를 실행하세요:

$ git config --system core.longpaths true

이 오류는 Windows Driver Kit과 함께 Debugging Tools for Windows가 설치된 상태에서 빌드할 때 발생할 수 있다. 이 문제를 해결하려면 Windows Driver Kit을 제거하고, 앞서 설명한 단계에 따라 Debugging Tools를 다시 설치해야 한다.

이 버그는 윈도우 커맨드 프롬프트의 '기능' 중 하나다. QuickEdit가 활성화된 상태에서 프롬프트 창 내부를 클릭하면 발생한다. 이 기능은 출력된 텍스트를 쉽게 선택하고 복사할 수 있도록 설계되었다. 그러나 실수로 클릭할 때마다 빌드 프로세스가 일시 중지되므로, 커맨드 프롬프트 속성에서 이 기능을 비활성화하는 것이 좋다.