记录windows下编译chromium,备忘

编译windows下chromium,时间:20170619,

官方地址:https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md

一. 系统要求:

1. 64位机器,至少8GB的内存,推荐16GB以上。(我用的Win10 64位虚拟机,内存按照8G来的);

2. 至少100GB的硬盘存储空间,格式为NTFS。FAT32不支持大于4GB的文件,而在git下载时的文件可能会有20GB+;

3. Visual studio 2015 update 3;

4. Win7+ (我用的Win10编译,此处可能有个坑,下文介绍);

二. 系统配置:

1. 安装Visual studio 2015 update3,并安装window sdk 14393,vs需要安装Visual C++的三个选项包括MFC,Universal Windows Apps Development Tools > Tools (1.4.1) and Windows 10 SDK (10.0.14393);

2. 14393的SDK安装时要安装Debugging Tools For Windows,我一开始安装的时候,不知为何没有安装这个,修复了下后,才有的;

三. 安装depot_tools:

1. 下载depot_tools bundle,然后解压,地址:https://storage.googleapis.com/chrome-infra/depot_tools.zip;

2. 将depot_tools放到PATH环境变量的开始位置,至少在你安装的python和git的前面,因为depot_tools里面会下载python,如果在你安装的python后面的话,可能会出一些不可预期的问题;

3. 添加环境变量DEPOT_TOOLS_WIN_TOOLCHAIN,并设为0;

4. 打开cmd.exe,运行gclient,在第一次运行的时候,gclient会安装python/msysgit等必要组件;

四. 获取源码:

1. 打开cmd,在你想放置源码的位置,创建chromium文件夹并进入,mkdir chromium && cd chromium;

2. fetch chromium;

ps:这里有个问题,我用的Win10带的默认的windows defender是开启的,此时在下载完源码后会出现:

  1. Traceback (most recent call last):
  2. File "D:\git\google\depot_tools\gclient_scm.py", line 965, in _Clone
  3. os.path.join(self.checkout_path, ‘.git‘))
  4. File "D:\git\google\depot_tools\gclient_utils.py", line 158, in safe_rename
  5. os.rename(old, new)
  6. WindowsError: [Error 5]
  7. [0:22:25] _____ removing non-empty tmp dir D:\google\_gclient_src_byzfvs
  8. ----------------------------------------
  9. Traceback (most recent call last):
  10. File "D:\git\google\depot_tools\gclient.py", line 2378, in <module>
  11. sys.exit(main(sys.argv[1:]))
  12. File "D:\git\google\depot_tools\gclient.py", line 2364, in main
  13. return dispatcher.execute(OptionParser(), argv)
  14. File "D:\git\google\depot_tools\subcommand.py", line 252, in execute
  15. return command(parser, args[1:])
  16. File "D:\git\google\depot_tools\gclient.py", line 2117, in CMDsync
  17. ret = client.RunOnDeps(‘update‘, args)
  18. File "D:\git\google\depot_tools\gclient.py", line 1568, in RunOnDeps
  19. work_queue.flush(revision_overrides, command, args, options=self._options)
  20. File "D:\git\google\depot_tools\gclient_utils.py", line 1112, in run
  21. self.item.run(*self.args, **self.kwargs)
  22. File "D:\git\google\depot_tools\gclient.py", line 867, in run
  23. file_list)
  24. File "D:\git\google\depot_tools\gclient_scm.py", line 166, in RunCommand
  25. return getattr(self, command)(options, args, file_list)
  26. File "D:\git\google\depot_tools\gclient_scm.py", line 450, in update
  27. self._Clone(revision, url, options)
  28. File "D:\git\google\depot_tools\gclient_scm.py", line 965, in _Clone
  29. os.path.join(self.checkout_path, ‘.git‘))
  30. File "D:\git\google\depot_tools\gclient_utils.py", line 158, in safe_rename
  31. os.rename(old, new)
  32. WindowsError: [Error 5]
  33. Traceback (most recent call last):
  34. File "D:\git\google\depot_tools\\fetch.py", line 353, in <module>
  35. sys.exit(main())
  36. File "D:\git\google\depot_tools\\fetch.py", line 348, in main
  37. return run(options, spec, root)
  38. File "D:\git\google\depot_tools\\fetch.py", line 342, in run
  39. return checkout.init()
  40. File "D:\git\google\depot_tools\\fetch.py", line 142, in init
  41. self.run_gclient(*sync_cmd)
  42. File "D:\git\google\depot_tools\\fetch.py", line 76, in run_gclient
  43. return self.run(cmd_prefix + cmd, **kwargs)
  44. File "D:\git\google\depot_tools\\fetch.py", line 66, in run
  45. return subprocess.check_output(cmd, **kwargs)
  46. File "D:\git\google\depot_tools\python276_bin\lib\subprocess.py", line 573, in check_output
  47. raise CalledProcessError(retcode, cmd, output=output)
  48. subprocess.CalledProcessError: Command ‘(‘D:\\git\\google\\depot_tools\\python276_bin\\python.exe‘, ‘D:\\git\\google\\depot_tools\\gclient.py‘, ‘sync‘, ‘--no-history‘)‘ returned non-zero exit status 1

这样的问题,主要是杀软拦截导致删除文件目录失败,禁用掉WinDefender就好了,其他杀软或许有类似的情况,请注意,参考https://bugs.chromium.org/p/chromium/issues/detail?id=464132)

3. 源码下载成功后,cd src,进入src目录;

五. 编译(最期待的时候到了):

1. 首先使用默认的编译方式吧,使用gn gen out/Default,会在src目录下创建out/Default目录,并配置些编译需要的文件;

2. 使用ninja -C out\Default chrome命令行编译chrome,此时需要等待漫长的时间;

ps:在使用ninja编译的时候,我这里出现了

ninja: Entering directory `out/Default‘
ninja: error: ‘../../native_client/toolchain/mac_x86/pnacl_newlib/bin/x86_64-nacl-objcopy‘, needed by ‘irt_x64/obj/ppapi/native_client/nacl_irt_debuglink.inputdeps.stamp‘, missing and no known rule to make it

这种类似的错误,在src目录下使用cmd执行gclient sync,顺利解决,参考https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/tQGuR7Ur0i8;

3. 编译好了,运行Default下的chrome.exe吧。

时间: 2024-10-04 00:01:19

记录windows下编译chromium,备忘的相关文章

windows下编译chromium浏览器的12个流程

编译chromium 系统为windows, 国内在windows上编译chromium的资料比较少, 我这篇文章只能作为参考, 记录我遇到的一些问题,因为chromium团队也会修改了代码,或者编译流程: 如果你用linux或者mac,就别看这篇文章, 国外的编译文档都是linux和mac, 因为差别还是比较多的: 12个编译流程: 1:chrome源码: https://chromium.googlesource.com/chromium/chromium/ 2:系统要求:win7以后的版本

linux下常用命令备忘

转自:Linux 命令集锦 linux下查看监听端口对应的进程 # lsof -i:9000 # lsof -Pnl +M -i4 如果退格键变成了:"^h". 终端连接unix删除退格键,按住CTL键同时按delete Linux搜索 # find / -name "xxx.conf" 查看linux是32位还是64位的命令 #file /sbin/init #getconf LONG_BIT #getconf -a 在Linux和Windows下都可以用nslo

在Windows下编译FFmpeg详细说明

MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU For Windows.它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的情况下使用 GCC产生 Windows32 程序. 开发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD) 操作系统而留在 Windows 的人提供一套符合 GNU 的 GNU 工作环境. 所以

【大话QT之十五】ctkPluginFrameWork插件系统Windows下编译

使用ctkPluginFramework作为插件系统框架的确有着众多开发上的优势.最近收到一些站内信,大家都想使用ctkPluginFramework但是不知道如何编译,这篇教程就来讲一讲ctkPluginFramework插件系统在Windows下的编译过程. 准备条件: 1. 安装Git,我们通过它来下载CTK的源码. 2. 安装CMake,我们用它来生成vs下的sln解决方案文件. 相关站点: 1. CTK的官网:http://www.commontk.org/index.php/Main

WIndows下编译libexif-0.6.21,生成VS下可用的dll和lib

1.下载libexif-0.6.21.zip 下载地址是http://sourceforge.net/projects/libexif/files/libexif/0.6.21/ 2.解压libexif-0.6.21.zip 我解压到了d:\opensources\下 3.安装Mingw 下载地址是http://www.mingw.org/ 点击右上角的Download Installer 记得安装Msys 我的安装路径是:C:\MinGW 下面依次有如下文件夹: bin include lib

在Windows下编译OpenSSL(VS2005和VC6)

需要说明的是请一定安装openssl-0.9.8a .  openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装ActivePerl//初始化的时候,需要用到perl解释器2.使用VS2005下的Visual Studio 2005 Command Prompt进入控制台模式(这个模式会自动设置各种环境变量)3.解压缩openssl的包,进入openssl的目录4.perl configure VC-WIN32尽量在这

在Windows下编译WebRTC

前言这篇文章的目的在于为你节省生命中宝贵的10小时(甚至更多),或者浪费你10分钟.作为Google更新频繁的大型跨平台基础库,WebRTC的编译一直被人称为噩梦.如果恰巧你偏要在Windows下编译WebRTC,那么你最好提前对自己的耐心和智商做充分的评估.截止目前,我尝试过中文博客社区里几乎所有的文章,可以说全部失效了.我不知道这篇文章的有效期有多久,因为webrtc.org社区的家伙们更新实在太勤奋了!环境 OS:Microsoft Windows 7 Ultimate 6.1.7601

windows下编译配置libnet-1.2-rc3

官网:http://packetfactory.openwall.net/projects/libnet/ 下载(有zip和tar.gz两个版本):https://github.com/sam-github/libnet/releases 解压之后: 编译步骤: 将libnet-libnet-1.2-rc3复制到D盘 双击libnet目录下的msvcbuild.bat文件,之后就会在src目录下生成libnet.dll和libnet.lib ---------------------------

windows下编译qt的mysql驱动

windows下编译qt的mysql驱动cd %QTDIR%\src\plugins\sqldrivers\mysqlqmake –o Makefile INCLUDEPATH+="C:\MySQL\MySQL5.1\include" LIBS+="C:\MySQL\MySQL5.1\lib\opt\libmysql.lib" mysql.promingw32-make在C :\Qt\2010.05\qt\plugins\sqldrivers就有mysql驱动了my