返回首页
当前位置: 主页 > Windows教程 >

如何在windows环境下编译chrome(2)

时间:2014-02-08 02:12来源:Office教程学习网 www.office68.com编辑:麦田守望者

加快构建

准备:整体解决方案的构建可以利用小时数较长,如果配置不正确。
以递减顺序加速的:

使用真正的多核处理器,即英特尔的Core Duo或更高版本(不是奔腾4 HT)。
使用一个x64操作系统(否则增量链接被禁用)。
至少有8 GB的RAM。如果您有少于4 GB,您可能会发现建立比登天慢。
打开预编译头文件 和组件的构建。
使用的src /构建/ some.gyp 只加载您所关心的目标。
禁用您的防病毒软件。之流,。PDB,,CC,·H文件,只检查对病毒修改。禁用扫描在您的来源所在的目录。
存储和构建铬代码,不具有交换(控制面板 - >系统和安全 - >系统 - >高级 - > Performance/Settings->高级 - >虚拟内存/更改)第二个硬盘驱动器上。编译和链接使用了大量的内存和磁盘I / O。这不是有I / O的情况发生,该内存管理器使用的交换同一个磁盘上的一个不错的主意。
请考虑使用忍者 -这是一个替代的命令行构建工具,它比Visual Studio中快得多,特别是对于增量构建。
减少并行编译的数目:避免内存交换不惜任何代价!铬需要大量的内存来链接,如果您同时建立了太多的子项目你的电脑会因为在争抢内存连接器的连接阶段慢如蜗牛。进入MSVC的工具\选项\项目和解决方案\生成和运行,并降低“建立最大并行项目数”。默认情况下它等于虚拟处理器的数量(例如8的四核HT CPU)。12 GB的RAM建议的数量低于8(见这里的讨论)。如果你有较少的RAM使用一个更小的数目。
您可能还需要调整您的include.gypi文件,以限制催生的cl.exe进程的数量,减少上下文切换(见这里的讨论)。例如,要限制只有5的cl.exe和5连接器,你的主文件夹的石膏下include.gypi应该有{ '变量':{ 'msvs_multi_core_compile“:0, } 'target_defaults“:{ “msvs_settings': { 'VCCLCompilerTool“:{ “AdditionalOptions':['/ MP5'], }, }, },}












定期整理硬盘。
你可能想尝试 增量链接 ,如果你喜欢冒险,或使用忍者。这使得连接非常快,当你工作增量,但在Visual Studio中有些脆弱,你可能需要做次清洗后同步,以避免虚假错误。
官方/ WPO / LTCG编译:
要启用全程序优化/链接时代码生成,一定要设置环境变量:
设置GYP_DEFINES =品牌=铬buildtype =官方
如果你有内部结账,使用 Chrome浏览器,而不是铬来获得谷歌Chrome浏览器的资源。
gclient runhooks
忍者-C出\发布Chrome
该WPO配置设置中定义release_impl_official.gypi。
单元测试

一些单元测试(如gfx_unittests)至少需要Vista/2008与平台更新 安装或Windows 7中执行所有测试完全。
其他技巧

请参阅 Visual Studio的宏页和调试页面。
博客文章上设置一个右手打印边距
运行Chromium
在 镀铬的。exe可执行文件可以在这里找到的src /编译/调试/ 镀铬的。exe或SRC /构建/发布/ 镀铬。exe文件,这取决于所选的生成配置。

由于铬的独特架构,有许多与发展有关的特殊挑战。见调试铬 获取更多信息。

一旦你适应了建设铬,阅读贡献代码页关于编写代码的铬和促进它的信息。

包装

如果你想你的编译打包成一个zip文件,请执行以下操作:

CD /路径/到/ SRC
/铬/工具/构建/赢/ make_zip.sh建立/释放我,铬

这将创建我- 铬拉链。。您可以更改发布到调试,如果你想压缩了调试版本代替。
故障排除

建立在Vista失败

如果你建立在Vista上,注意安全问题。请确保您签出您的文件的文件夹是可写的用户和不仅为管理员。
编译失败

想想,当你有怪异的编译失败的一些共性的东西:

如果你碰巧已签出安装构建的先决条件(Visual Studio中,SDK,以及所有的补丁)之前的源代码,你需要通过退出Visual Studio中,然后运行“重新生成VS解决方案文件gclient runhooks “。
有时候Visual Studio中做了错误的事情铬建设时并卡住假错误。这方面的一个很好的迹象是,如果它只是没有一个人,但其他人(包括Buildbots)都没有抱怨。要解决此问题,请尝试以下步骤:
关闭Visual Studio。
同步到树的顶端,并确保没有冲突(“ svn status的 “不应该出现任何” ç,你已经改变了“在文件前面的S)。
如果有冲突,解决这些问题后,再次同步。
手动清除输出目录(铬\调试和镀铬\释放。使用命令行,你可以使用“ 删除/ S / Q调试版本 “从chrome目录做到这一点,或” 室射频调试版本 “,如果你有安装的类Unix的工具。
重新启动Visual Studio并打开铬的解决方案。
重建方案。
如果你得到这样的错误:* C:\ Program Files文件\微软的SDK \ WINDOWS \ V6.1 \ INCLUDE \ unknwn.idl(108):错误MIDL2025:语法错误:期待]或附近的“说文解字注” *浏览器\下载\ download_util.cc(469):错误C2065: 'ITaskbarList3“:未声明的标识符你要么有错误的平台SDK或不正确,可能注册。尝试安装 Windows 7的SDK ,或者,如果已经安装,请尝试 手动注册的SDK。
如果你看到下面的错误:*错误C2039:'_Swap_adl':不是'性病'的一个成员,那么你就很有可能运行到Windows SDK和一个安全补丁之间的冲突。看到这个 MSDN博客文章 了解更多详情 请尝试 重新安装Visual Studio的SP1。

如果你得到的错误是这样的:
3> C:\程序文件(x86)的\微软DirectX SDK(2010年6月)\包括\ d3d11shader.h(35):错误C2146:语法错误:缺少;标识符“D3D11_RESOURCE_RETURN_TYPE'前'

3> C:\程序文件(x86)的\微软DirectX SDK(2010年6月)\包括\ d3d11shader.h(35):error C4430:缺少类型说明符 - 假定为int。注意:C + +不支持默认int

3> C:\程序文件(x86)的\微软DirectX SDK(2010年6月)\包括\ d3d11shader.h(35):error C4430:缺少类型说明符 - 假定为int。注意:C + +不支持默认int

3> C:\程序文件(x86)的\微软DirectX SDK(2010年6月)\包括\ d3d11shader.h(37):错误C2146:语法错误:缺少;标识符“D3D11_CBUFFER_TYPE'前'

然后确保了DirectX头文件首先出现在包括搜索路径(MSVC |工具|选项|项目和解决方案| VC + +目录)。使得改变重试后生成不撞应该工作。

如果仍然无法正常工作,重复这个过程可能不会帮助。
Cygwin的访问控制问题

如果,同时建立 JavaScriptCore,你看到这样的错误:

3>在临时文件错误()使用的/ tmp / dftables-XXXXXXXX.in:父目录(/ tmp目录/)不可写
3> / cygdrive / C / B /从/ WEBKIT〜1/build/webkit/third_party/JavaScriptCore / PCRE / dftables线236
3>使:*** [chartables.c]错误255
......这是因为Cygwin安装包含在铬源时遇到问题映射NT ACL来POSIX权限。这似乎当铬签出到一个目录中的Cygwin的想不通的权限摆在首位,可能当目录从一个Cygwin环境运行之前创建的发生 mkpasswd。Cygwin的再强加自己的访问控制,这是不正确的限制。作为一种变通方法,请执行下列操作之一:

编辑上的NT权限 third_party \ cygwin的\ TMP 允许 修改 和 写入 的动作 大家都 和 机\用户。cygwin是一个能算出这个。或者,
找出什么地方出了错与你结账,然后再试一次-尝试做结账的 CMD ,而不是从一个Cygwin的壳,然后验证权限不完全空白在你的Cygwin安装。或者,
旁路Cygwin的访问控制(NT的将仍然有效)通过编辑的webkit \建立\ JavaScriptCore \ prebuild.bat和webkit的\编译\的WebCore \ prebuild.bat包括调用使用Cygwin的任何事情之前以下行:

设置CYGWIN = nontsec

注:不支持在Cygwin 1.7和更大的nontsec选项。
编辑cygwin的文件/ etc / fstab文件,添加noacl选项从

无/ cygdrive cygdrive二进制,POSIX = 0,用户,noacl 0 0

只有这些解之一应该是必要的。

本机客户端不运行

如果您构建chrome_nacl_win64时出现此错误:

LINK:致命错误LNK1104:无法打开文件'atlsd.lib“

这意味着你的页面的顶部描述没有安装64位编译器和工具。
第一gclient的运行失败安装python

如果gclient的第一次运行产生错误:

使用svn:无法移动“C:\用户\用户名\ depot_tools \ python_bin \ TCL \ Tix8.4.3 \ SVN \ TMP \条目”,以'C:\用户\ rhashimoto \ depot_tools \ python_bin \ TCL \ Tix8.4.3 \ SVN \项目“:该文件或目录损坏且无法读取

... 自动故障结帐蟒蛇。

请访问http://python.org下载最新的Python 2.x的客户端,然后继续。

您也可以在http://src.chromium.org/chrome/用“prebacked”版本躯干/工具/ third_party /

见这个链接就关闭Windows索引的说明。

手动注册平台SDK

GYP自动拾取正确的SDK版本按照“msbuild_toolset'变量设置在%USERPROFILE%\。石膏\ include.gypi。
如果该变量没有设置7.0A的SDK(也被称为“V100”)被使用。(即包含在Visual Studio中的一个)。
的Windows 7.1 SDK是通过设置变量“Windows7.1SDK”。
 

------分隔线----------------------------
标签(Tag):windows8 windows教程 windows技巧 windowsxp
------分隔线----------------------------
推荐内容
猜你感兴趣