Windows D8 Build

mhibio·2022년 7월 8일
0

그냥 혼자 공부하면서 적었던 내용들인데, 혹시나 참고될만한 내용이 있을까봐 올려봅니당.

http://www.egocube.pe.kr/lecture/content/html-javascript/202004210001

https://stackoverflow.com/questions/67041878/how-do-i-embed-v8-on-windows

https://pwn.browser.rip/

https://chromium.cypress.io/linux/

Trouble Shooting

  • windows 환경 v8 buildVisual Studio를 지원하는데, 만약 구버전 v8을 빌드한다면 해당 시기의 지원하는 visual Studio 버전이 2017 , 2019 혹은 그 이하일 수 있다.
set GYP_MSVS_VERSION=2019
set vs2019_install=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community

set GYP_MSVS_VERSION=2017
set vs2017_install=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community

→ 구버전은 2019, 2017 버전만 지원하므로 2019 Visual Studio를 사용한다고 환경변수를 지정해주고, 이렇게만 하면 Visual Studio\2019\Community 이런식으로 접근하여 2022버전을 사용중인 내 컴퓨터에서는 파싱 오류가 발생하기 때문에 직접 vs2019_install 위치를 설정해주면 된다.

→ 를 하면 구버전에 있는 헤더파일들이 같이 안 따라 와서 빌드에서 오류가 난다는 이슈…. 개 빡침 그냥

→ 나는 그냥 Visual Studio 3개 깔아서 맞춰서 빌드한다...

???

무슨 이유에서인지 환경변수를 설정해도 스크립트가 인식을 못하는 경우가 있더라

원하는 버전의 vs path를 강제로 리턴해주는데, \\ 두개 입력하거나 /로 바꿔서 잘 입력해주자.

필수 환경

  1. 무조건 빌드는 CMD환경에서 해야함. ( PowerShell을 비롯한 다른 쉘 불가능 )
  2. Visual Studio 설치
    1. 설치할 때 Dekstop C++ Overload 를 체크해주자.
  3. Git, Python 은 기본으로 설치
  4. Windows 10 SDK 설치
    1. https://developer.microsoft.com/ko-kr/windows/downloads/sdk-archive/
    2. 해당 링크에서 10.0.20348.0 버전의 SDK를 설치.
    3. "Debugging Tools for Windows" 항목은 꼭 확인
  5. 설치하다가 ***.dlll 을 찾을 수 없다고 뜨면 추가로 설치해서 C:/Windows/system32 에 복사

순서

  1. depot_tools 다운로드

    1. https://storage.googleapis.com/chrome-infra/depot_tools.zip
    2. C:\depot_tools에 압축해제
  2. 환경변수 추가 ( cmd )

    set PATH=C:\depot_tools;%PATH%
    set DEPOT_TOOLS_WIN_TOOLCHAIN=0 
    set GYP_MSVS_VERSION=2015
  3. V8 빌드할 디렉토리로 이동

    1. gclient 설치확인 ( 무조건 CMD 만 )
    gclient
    
    // 아래와 같이 나오면 성공
    Downloading CIPD client for windows-amd64 from https://chrome-infra-packages.appspot.com/client?platform=windows-amd64&version=git_revision:6e4acf51a635665e54acaceb8bd073e5c7b8259a...
    WARNING: Your metrics.cfg file was invalid or nonexistent. A new one will be created.
    Usage: gclient.py <command> [options]
    
    Meta checkout dependency manager for Git.
    
    Commands are:
      config   creates a .gclient file in the current directory
    . . . 
  4. python 확인

    1. 빌드를 위한 별도의 pythondepot_tools에서 제공

    2. 이를 확인하기 위해서 다음과 같이 실행

    3. 결과가 depot_tools/python.bat이 나오면 정상적

      C:\Users\mhibi\Desktop\***\***\v8> where python
      C:\depot_tools\python.bat
      C:\Users\mhibi\AppData\Local\Programs\Python\Python310\python.exe
      C:\Users\mhibi\AppData\Local\Microsoft\WindowsApps\python.exe
  5. 빌드 ( 신버전 )

fetch v8
// "./v8/.gn"에 script_executable = "python3"인지 확인
cd v8
git checkout ****
gclient sync

tools/dev/gm.py x64.release

# or

python tools/dev/v8gen.py x64.release
ninja -C out.gn/x64.release

# 수정할 내용이 있으면 
gn args out.gn\x64.release # 폴더열기
# 아래처럼 세팅 해도되고 안해도 되고
is_debug = false 
target_cpu = "x64" 
is_component_build = false 
v8_static_library = true

# 빌드가 올바르게 됐는지 확인하기 위해서는
python tools/run-tests.py --gn

4-1. 빌드 ( 구버전 )

fetch v8
// "./v8/.gn"에 script_executable = "python3"인지 확인
cd v8
git checkout ****
gclient sync

python gypfiles/gyp_v8.py

Build Issue

Code Issue

https://github.com/push0ebp/v8-starter-guide

profile
Soongsil Univ. Interested In Security. Hello :)

0개의 댓글