Chrome Visual Studio 2005 의 컴 파일 과정
컴 파일 환경 준비 크롬의 컴 파일 은 웹 키 트 에 비해 난이도 상 으로 는 1 원 2 차 방정식 의 풀이 와 편 미분 방정식 의 풀이 의 대비 이다.크롬 도 웹 킷 에서 진 행 됐 지만 웹 킷 의 JS 엔진 을 V8 로 교체 할 뻔 했다.그러나 구 글 이 웹 킷 의 컴 파일 난이 도 를 몇 단계 낮 추 었 다 는 것 을 인정 할 수 밖 에 없 었 다.
말하자면 크롬 공식 사이트 에 발 표 된 것 은 비 주 얼 스튜디오 2005 를 바탕 으로 컴 파일 된 것 이다.인터넷 에 도 비 주 얼 스튜디오 2008 을 바탕 으로 컴 파일 에 성공 한 형제 가 있 지만 내 수중 에 비 주 얼 Stdio 2008 이 없어 서 알 수가 없다.본문 도 Visual Studio 2005 환경 을 예 로 들 었 다.나 는 일찍이 내 집 컴퓨터 에서 Visual C+2005 Express 버 전 으로 컴 파일 한 적 이 있 지만 성공 하지 못 했다.XP Professional 과 Vista Home 두 운영 체제 에서 모두 컴 파일 에 성공 했다.
Chrome 코드 를 다운로드 하기 전에 다음 소프트웨어 를 설치 해 야 합 니 다.
1. Visual Studio 2005 설치.
2. Visual Studio 2005 서비스 팩 1 을 설치 합 니 다.
3. 핫 패 치 설치 Hotfix 947315.
4. 운영 체제 가 Vista 라면 Visual Studio 2005 Service Pack 1 Update for Windows Vista 를 설치 해 야 합 니 다.
5. Windows 2008 SDK 설치.인터넷 에 따 르 면 비 주 얼 스튜디오 2008 이 라면 이 걸 설치 할 필요 가 없다.
6. 윈도 2008 SDK 를 설정 합 니 다.시작->프로그램->Microsoft Windows SDK v 6.1>Visual Studio Registration>Windows SDK Configuration Tool..make current 단 추 를 선택 하 십시오.행운 이 라면 한 번 에 성공 할 수 있 을 것 입 니 다.만약 성공 하지 못 한다 면 크롬 공식 사이트 에 수 동 설정 의 도움 이 있 으 니 참고 하 시기 바 랍 니 다.
다운로드 코드 Google 은 Chrome 에 배포 도구 depot 를 제공 합 니 다.tools 는 다운로드 코드,동기 코드,업로드 코드 등 기능 을 포함한다.이 도 구 는 Python 으로 작 성 된 것 으로 자바 script 스 크 립 트 도 포함 되 어 있 습 니 다.Depot_tools 에는 gclient 도구 가 포함 되 어 있 습 니 다.우리 가 주목 해 야 할 중점 입 니 다.
다운로드 코드 는 몇 가지 방법 이 있 습 니 다.
1. 크롬 홈 페이지 에는 직접 다운로드 할 수 있 는 소스 패키지 가 제공 된다.근 데 이 가방 은 최신 가방 이 아니에요.내 가 채택 한 것 은 이런 방법 으로 다운 로드 를 하 는 것 으로 상대 적 으로 비교적 빠르다.
2. SVN 클 라 이언 트 도 구 를 사용 하여 다운로드 합 니 다.예 를 들 어 TortoiseSVN 클 라 이언 트 도구,SVN 서버 주 소 는http://src.chromium.org/svn/trunk/src입 니 다.
3. 구 글 이 제공 하 는 depot 사용 하기도구
l depot 다운로드 및 설치tools 。
l depottools 의 설치 디 렉 터 리 를 시스템 디 렉 터 리(시스템 Path 환경 변수)에 설정 합 니 다.
l d:\chrome 같은 Chrome 코드 를 저장 할 디 렉 터 리 를 만 듭 니 다.디 렉 터 리 에 빈 칸 을 포함 하지 마 십시오.
l 명령 행 에서 현재 디 렉 터 리 를 chrome 코드 의 디 렉 터 리 로 전환 합 니 다.예 를 들 어 위의(d:\chrome).
l gclient confighttp://src.chromium.org/svn/trunk/src명령 을 실행 합 니 다.Gclient 는 svn 도구 와 python 도 구 를 다운로드 한 다음 svn 을 호출 하여 코드 를 동기 화 합 니 다.
메모:gclient 에서 svn 과 python 을 다운로드 할 때 자바 script 을 사용 합 니 다.프 록 시 설정 이 필요 한 환경 에 서 는 스 크 립 트 를 수정 해 야 합 니 다.
1.X:\depot 열기tools\bootstrap\win\get_file.js 파일.그 중 X 는 당신 의 설치 부적 입 니 다.
2.Line 9-Line 22 줄 사이 의 코드 를
try {
xml_http = new ActiveXObject("MSXML2.ServerXMLHTTP");
} catch (e) {
WScript.StdOut.WriteLine("[-] XMLHTTP " + new Number(e.number).toHex() +
": Cannot create Active-X object (" + e.description) + ").";
WScript.Quit(1);
}
try {
xml_http.open("GET", url, false);
} catch (e) {
WScript.StdOut.WriteLine("[-] XMLHTTP " + new Number(e.number).toHex() +
": invalid URL.");
WScript.Quit(1);
}
고치다
try {
xml_http = new ActiveXObject("MSXML2. ServerXMLHTTP.5.0 ");
} catch (e) {
WScript.StdOut.WriteLine("[-] XMLHTTP " + new Number(e.number).toHex() +
": Cannot create Active-X object (" + e.description) + ").";
WScript.Quit(1);
}
try {
xml_http.setProxy(2, proxyIP:Port);
xml_http.open("GET", url, false);
xml_http. setProxyCredentials(username,pwd);
} catch (e) {
WScript.StdOut.WriteLine("[-] XMLHTTP " + new Number(e.number).toHex() +
": invalid URL.");
WScript.Quit(1);
}
컴 파일 코드 가 다운로드 한 소스 패키지 라면 먼저 압축 을 풀 어야 합 니 다.이 코드 패 키 지 는 이중 압축 입 니 다.모든 코드 를 풀 어야 할 것 같 습 니 다.30 분 정도 걸 렸 습 니 다.저 는 제 공책 에서 거의 30 분 이 걸 려 서 압축 을 풀 었 습 니 다.모든 코드 의 크기 는 3 개 이상 G 입 니 다.
인터넷 에서 크롬 컴 파일 과 관련 된 자 료 를 검색 한 지 오래 되 었 습 니 다.src\chrome 디 렉 터 리 에 chrome.sln 파일 이 있다 고 피드백 하 였 습 니 다.이 sln 을 직접 열 면 Visual Studio 2005 를 이용 하여 컴 파일 할 수 있 습 니 다.그러나 나 는 모든 코드 를 뒤 져 보 았 지만 이 파일 을 찾 지 못 해 오랫동안 답답 했다.내 가 내 린 코드 버 전 문제 라 고 의심 하기 시작 했다.온라인 으로 크롬의 SVN 디 렉 터 리 를 살 펴 보 니 최신 버 전도 이 파일 이 없 었 다.인터넷 에 올 라 온 글 들 이 기본적으로 2008 년 의 글 인지 확인 해 보 세 요.chrome 이 바 뀌 었 는 지 의심 하기 시 작 했 지만 chrome 홈 페이지 에서:
Building Chromium
1 Open the chrome/chrome.sln solution file in Visual Studio and build the solution. This can take from 25 minutes to 1 hour.
2 If you just want the Chromium browser, and none of the tests, you can speed up your build by right-clicking the chrome project in the solution explorer and selecting Build . You may want to make sure this project is the Startup project (which will display as bold) by right-clicking it and selecting Set as Startup Project . This will make Chromium (as opposed to some random test) build and run when you press F5 .
보아하니 업데이트 되 지 않 은 것 같다.마지막 으로 온라인 에서 chrome 의 개발 group 포럼 을 뒤 져 보 니 Chrome 이 확실히 수정 되 었 다 는 것 을 알 게 되 었 습 니 다.원래 코드 에 있 던.sln,.vcproj 파일 들 이 모두 버 렸 습 니 다.google 은 스스로 스 크 립 트 도구 인 GYP 도 구 를 개 발 했 습 니 다.이 도 구 는 python 으로 작 성 했 습 니 다.GYP 는 각종 프로젝트 파일 을 만 드 는 데 사용 할 사용자 정의 규칙 을 사용 합 니 다.우 리 는 아래 의 이 gyp 파일 을 볼 수 있다.
{
'includes': [
'../../build/common.gypi',
],
'targets': [
{
'target_name': 'memory_watcher',
'type': 'shared_library',
'msvs_guid': '3BD81303-4E14-4559-AA69-B30C3BAB08DD',
'dependencies': [
'../../base/base.gyp:base',
],
'defines': [
'BUILD_MEMORY_WATCHER',
],
'include_dirs': [
'../..',
],
'sources': [
'call_stack.cc',
'call_stack.h',
'dllmain.cc',
'hotkey.h',
'ia32_modrm_map.cc',
'ia32_opcode_map.cc',
'memory_hook.cc',
'memory_hook.h',
'memory_watcher.cc',
'memory_watcher.h',
'mini_disassembler.cc',
'preamble_patcher.cc',
'preamble_patcher.h',
'preamble_patcher_with_stub.cc',
],
},
],
}
사실 이 파일 의 내용 은 visual studio 2005 의 vcproj 파일 과 큰 차이 가 있 지만 묘사 한 것 은 큰 변화 가 없고 더욱 간단 하고 간결 할 뿐이다.프로젝트 의 파일,컴 파일 설정 등 내용 을 설명 한 것 이 아 닙 니 다.
다음은 컴 파일 절 차 를 설명 합 니 다.
1. 명령 행 도 구 를 실행 합 니 다.
2. Chrome 홈 디 렉 터 리 로 전환 합 니 다.
3. gclient runhooks--force 를 실행 합 니 다.이 명령 은 GYP 도 구 를 호출 하여 Chrome.gyp 를 분석 하여 각 Visual Studio 2005 프로젝트 파일 을 생 성 합 니 다.
4. chrome/chrome.sln 파일 을 더 블 클릭 하면 Visual Studio 2005 를 열 수 있 습 니 다.모두 215 개의 프로젝트 가 있 습 니 다.매우 큽 니 다.
오른쪽 단 추 를 누 르 면 솔 루 션 을 선택 하고 솔 루 션 생 성 을 선택 하 며 컴 파일 이 시 작 됩 니 다.이 과정 은 제 공책 에서 2 시간 정도 지속 되 었 고 CPU 는 한 시간 넘 게 100%지속 되 었 기 때문에 저 는 영 화 를 보 는 것 조차 끊 겼 습 니 다.컴 파일 된 파일 은 chrome\debug 디 렉 터 리 에 놓 여 있 습 니 다.전체 컴 파일 을 통 해 Debug 디 렉 터 리 에 7 개 G 에 가 까 운 동 동 을 추 가 했 습 니 다.정말 무 섭 습 니 다!Chrome 을 컴 파일 하려 면 최소한 10 개의 G 공간 을 유지 해 야 합 니 다.
크롬 을 컴 파일 하 는 과정 전 체 를 정리 하 는 데 는 솔직히 많은 힘 이 들 었 지만 컴 파일 된 chrome 을 보면 서 마음 은 행복 했다.
내 가 번역 하 는 과정 에서 주로 발생 하 는 몇 가지 문제:
1. 회 사 는 Visual Studio 2005 가 있 지만 Proxy 때문에 depottools 도 구 는 진행 할 수 없어 proxy 의 한 계 를 돌파 하기 위해 많은 힘 을 썼 다.
2.크롬 프로젝트 의 조직 방식 이 바 뀌 었 지만 홈 페이지 에 업데이트 되 지 않 았 습 니 다.인터넷 의 다른 자 료 는 모두 구 버 전의 소 개 를 바탕 으로 하기 때문에 새로운 gyp 방식 에 적응 하 는 데 많은 힘 을 들 였 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
해상 자위대의 HP가 아베 히로시의 라이벌로서 자칭을 줬다※기술적인 기사가 아닙니다. 다소 기술적인 이야기는 나옵니다. 우선, 그 페이지는 ・https 대응 ・2019.6.4 홈페이지 재개설(이전 사이트는 어디인가) ・로고와 타이틀이 입고 있다 · Failed to loa...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.