如何在windows上windows编译chromiumm 并加入MP3支持

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
最近,尝试使用了谷歌浏览器Chrome,发现速度果然有不少提升,假死几乎为零,安装完各种插件,用起来还比较顺手,于是果断抛弃Maxthon。Chrome作为一款开源浏览器,它给这个充斥着大量工业垃圾代码和教材玩具代码的行业,增添了一些艺术气息和美的潜质,让我们有机会站在巨人的肩膀上学习;作为一名开源爱好者,学习+分享才能不断提高。
一、编译环境
本人开发环境:Windows XP + Visual Studio 2005 +&Microsoft Windows SDK7 +&Microsoft DirectX SDK (June 2010)
注意:建议按步骤安装
1、使用Visual Studio 2005
安装补丁&、。
如果操作系统是&Vista,需要安装&。
2、使用Visual Studio 2008
安装补丁、&、、&&和。
3、安装Microsoft Windows SDK7
4、安装Microsoft DirectX SDK 最新版
我用的是已满足编译要求。
5、配置&Microsoft Windows SDK7
开始菜单-&所有程序-&&Microsoft Windows SDK v7&-&Visual Studio Registration-&Windows SDK Configuration Tool,在上边&Install Windows SDK Versions&右边的下拉框中选中“&v7”,在&Select Visual Studio Versions&中选中“Microsoft Visual Studio&2005(或Microsoft Visual Studio&2008)”,最后点击“Make Current”即可(在弹出的对话框中选择确认)。
二、下载代码
下载代码管理工具,这是google自己用python封装的svn代码获取客户端工具。请不要直接使用&SVN 检出 Chromium&的代码,以避免一些不可预知的问题。将depot_tools解压到比如E:/Chrome/depot_tools目录(目录路径请不要带有中文或空格),并将其目录路径加到PATH环境变量;然后,新建环境变量GYP_MSVS_VERSION=2005(或2008),这个环境变量的目的就是最终生产vs2005(或2008)的工程类型。
直接通过depot_tools工具下载源代码速度是比较慢的,我先下载,然后再更新到最新版本。将离线包解压比如E:/Chrome/chromium目录(目录路径请不要带有中文或空格,并保证此分区有20G剩余容量)。
更新源代码到最新,以及生产VS2005(或VS2008)工程项目文件。命令行cd到E:/Chrome/chromium目录(chromium目录下有src文件夹),执行命令gclient sync –force(此过程无需任何操作,更新时间比较漫长,如出现Installing subversion …[-] SHELL.APPLICATION : Failed to open zip file.… Failed to checkout svn automatically.Please visit&&to download the latest subversion clientbefore continuing.You can also get the “prebacked” version used at&nk/tools/third_party/ 错误提示,可能是zipfldr.dll文件未注到系统的原因,我就是这种情况;下载zipfldr.dll,并注册
regsvr32&%WINDIR%\system32\zipfldr.dll)。
如果不想更新代码到最新,命令行cd到E:/Chrome/chromium目录,执行gclient&runhooks&–verbose,可直接生成对应的项目工程文件。
三、编译代码
进入E:/Chrome/chromium\src\chrome目录,打开chrome.sln解决方案,比过程比较慢,因为VS IntelliSense和Visual Assist(如果安装了的话)会分析代码,既耗时,有卡,强烈建议关闭VS IntelliSense。
直接编译chrome目录下的chrome.proj工程即可,此过程更加费时(跟电脑配置有关,耗时不等,我的是4小时左右),慢慢等待吧。
编译成功后,E:/Chrome/chromium\src\chrome\Debug目录下,会生成Debug版程序。
将chrome.proj设为启动项目,F5,进入调试模式,看其他项目里的源文件可否设置断点(我的就不行,非常悲催!),如果可以,那么恭喜你,进入chrome学习之旅吧;不过不行,请继续往下看吧。
四、chrome不能调试的解决之法
进入调试模式后,单击“调试”– &“窗口”– &“模块”,查看“模块”窗口中,chrome.dll的符号文件是否没有加载成功,如果是,问题应该与我的相同了。
VS 2005新建一个解决方案,只添加chrome.proj和chrome_dll.proj项目,将chrome.proj设为启动项目,F5,直接调试(不用编译,也不能编译,如需编译请回到chrome.sln下编译),这时再看能否设置断点,如果可以,那么恭喜你啦。
问题原因,可能是WindowsXP + 2G内存 + chrome.sln工程太多的原因吧(看来2G内存面对近500个工程的chrome,有些寡不敌众了)。
至此,chrome源代码学习环境搭建完成,学习之旅马上出发!
想看看Google Chromium浏览器的源代码,长点见识,下载源代码包编译和参考网上的一些文档总是有一些问题,根据Chromium提供的文档进行编译的步骤,最终能够进行正常的编译与调试。
1.安装Microsoft Visual Studio 2005 Service Pack 1.
3.开始-&所有程序-&Microsoft Windows SDK V6.1-&Visual Studio Registration-&Windows SDK Configuration Tool,将SDK加入Visual Studio 2005.
4.下载depot_tools,用于下载更新源代码.
安装depot_tools
2. 解压depot_tools.zip.
3. 将解压目录添加到系统环境变量PATH中, 例如: C:/bin/depot_tools(我的电脑-&属性-&高级-&环境变量-&系统变量-&Path,双击该条目然后再后边加上对应目录,注意分号隔开).
获取源代码
1. 创建一个用于存放源代码的目录. 如c:/chromiumtrunk,注意保证有足够的空间(最好10G以上吧,我的最后有5G).
2. 在命令行窗口,执行以下命令:
cd c:/chromiumtrunk
gclient config
3.下载初始代码,用于下载和更新源代码.
获取最新版本的Chromium源代码
在命令行窗口,执行以下命令:
cd [your Chromium source directory] //进入存放源代码的目录
gclient sync
至此,SVN开始自动下载最新版本的源代码到该目录,注意保持网络畅通,如果是正常结束,命令行最后应该显示更新到的版本号。
编译源代码
1. 打开Visual Studio 2005.
2. File-&Open Project/Solution, 选择源代码目录下的src/chrome/chrome.sln
3. 在左侧的解决方案树中, 选择App条目,右键chrome_exe,设置为启动项目.
4. 为编译做配置:
1. 右键chrome_exe, 选择属性.
2. 在左侧条目中, 选择配置属性-&调试.
3. 在右侧条目中, 设置命令参数,例如: --user-data-dir=c:/tmp/DebugProfile
4.点击确定保存.
5. 按F5,生成chrome_exe解决方案,并且进入调试模式.
6. 完成后,chrome浏览器将会出现在你眼前.
Chromium为开发者准备的文档,包含以上编译的各个步骤,有问题可参看.http://dev.chromium.org/
阅读(7146)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_083069',
blogTitle:'Google Chromium源代码Windows下编译步骤(转)',
blogAbstract:'
blogTag:'',
blogUrl:'blog/static/5957312',
isPublished:1,
istop:false,
modifyTime:3,
publishTime:2,
permalink:'blog/static/5957312',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}6907人阅读
chromium(20)
最近自己的成长目标想从模块设计转到系统架构上,刚好大组有个浏览器调研的任务,而chromium又是google开源的浏览器,所以开始对它进行了一些前期研究。这个过程十分不容易,我对windows下的开发环境了解得太少,光是编译就花了我很大的工夫,我把这里边遇到的问题记录下来。
开发环境:
windows7专业版,sp1
vs2013 & & & &我不想自己折腾自己,把原来的vs删了,装上编译要求的。
安装编译环境
windows 7.1 sdk&
windows sdk 8
June 2010 DirectX SDK
如果安装过程中出现错误S1023
把Microsoft Visual C++ 2010 Redistributable删掉就可以了,我把x86和x64的都删了。
Windows Driver Kit 7.1.
/en-us/download/details.aspx?id=1
所有的这些我都是装在默认路径下,以避免需要更改路径的配置,最大限度避免由于路径导致的问题。
我在系统配置项中加了以下的配置项,我看了很多网上的攻略,我最后也不知道哪些配置项是有用的了。
新建DXSDK_DIR:C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\
Path新加(在原有的上增加的,请不要把原有的覆盖掉)
D:\chrome\depot_tools\depot_tools & 安装depot_tools的目录
新建WDK_DIR:C:\WinDDK\.1 &Windows Driver Kit 7.1.安装目录
1、下载depot_tools
https://src.chromium.org/svn/trunk/tools/depot_tools.zip,解压就可以用。
注意按上文提到的在path中增加解压目录。
2、连接外网的需要,在进行下载编译时,可能需要连接,这个被防火墙屏蔽了。
cmd命令窗口我不知道怎么设置使用代理,我直接用的vpn,叫NydusVpn,可以免费用一天,如果只是下载代码的话足够了,但是不排除以后要有什么更新的要求。如果大家能直接连外网,这一步忽略。
3、下载代码,建立一个空文件夹。如D:\chrome_new
在http://src.chromium.org/svn/releases/选一个你需要编译的版本,我不确定每个版本是否可以编译,通常选当前浏览器对应的版本应该是可以的,我按网上选的是36.0.1929.1
使用cmd进入D:\chrome_new
C:\Users\lenovo&d:
D:\&cd chrome_new
gclient config http://src.chromium.org/svn/releases/36.0.1929.1
等待命令完成。
gclient sync --force &这个过程很慢,我等了可能一晚上
<span style="color:#、修改配置,这些配置我也是根据错误改的,我不并确定对每个人是否有用。
src\build\common.gypi
(1)查找msvs_disabled_warnings,找到
'msvs_disabled_warnings': [, , 4819,
# TODO(maruel): These warnings are level 4. They will be slowly
# removed as code is fixed.
<span style="color:#00, , , , , ,
<span style="color:#10, , , , , ,
<span style="color:#06,00,19,
最后这几个数字没有的加上,因为编译的时候把可能把warning当成错误导致编译不过。
(2)查找msvs_cygwin_shell,修改为
'msvs_cygwin_shell': 1,
解决 generate_stubs.py : error : No inputs specified问题
(3)查找到msvs_cygwin_shell位置,在下边增加一行。
'msvs_cygwin_dirs': ['&(DEPTH)/third_party/cygwin'],
解决src\third_party\ffmpeg\.\setup_env.bat 不是内部或外部命令,也不是可运行的程序 的问题
<span style="color:#、生成可编译代码,在src目录下运行
set DEPOT_TOOLS_WIN_TOOLCHAIN=1
set GYP_MSVS_VERSION=2013&
set GYP_GENERATORS=msvs-ninja,ninja
set GYP_DEFINES=component=shared_library
gclient runhooks
注意你的vs是 Visual Studio 2013还是Visual Studio 2013 Express
如果是Visual Studio 2013 Express,按官方的要求需要修改
set GYP_MSVS_VERSION=2013e
DEPOT_TOOLS_WIN_TOOLCHAIN我设置的是1,我目前还不知道0和1的区别。
GYP_GENERATORS,我多次尝试直接使用vs2013编译源代码,但是都无法成功,所以我最后还是用了ninja
所以配置在这里是msvs-ninja,ninja
7、ninja -C out\Debug chrome
我的笔记本很慢,这个命令又花了一晚上执行,到最后报了个错,让我很崩溃。错误是
[] ACTION chrome_dll: hardl...utput_fbcf16b8da7e1fadac58f
FAILED: D:\chrome\depot_tools\depot_tools\python276_bin\python.exe gyp-win-tool
action-wrapper environment.x86 chrome_dll_target_hardlink_pdb_to_output_fbcf16b8
da7e1fadac58f..rsp
系统找不到指定的路径。
当文件已存在时,无法创建该文件。
系统找不到指定的文件。
已复制 & & & & 0 个文件。
[] ACTION chrome_dll: hardl...utput_fbcf16b8da7e1fadac58f
ninja: build stopped: subcommand failed.
这个错误有可能跟我多次编译没有成功有关。我的解决办法是:
打开src\out\Debug,找到chrome_dll_target_hardlink_pdb_to_output_fbcf16b8da7e1fadac58f..rsp文件
用记事本打开,最后两个参数是两个路径
&'../out/Debug/initial/chrome.dll.pdb' '../out/Debug/chrome.dll.pdb'&
在out/Debug目录下删掉文件out/Debug/chrome.dll.pdb
再次执行ninja -C out\Debug chrome就能够编译过了。
到此编译任务完成,行成的程序在src\out\Debug\chrome.exe
此文由本人回忆整理,如果有疏漏,请见谅。
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:65212次
排名:千里之外
原创:22篇
评论:14条
(3)(8)(8)(4)下 v8引擎V8引擎编译还是比较方便的,只依赖 /gyp /cygwin以下为编译过程:签出v8源 co&/svn/trunk&v8签出cygwin:svn co&http://src.chromium.org/svn/trunk/deps/third_party/cygwin&v8/third_party/cygwin签出python:svn co&http://src.chromium.org/svn/trunk/tools/third_party/python_26&v8/third_party/python_26签出gyp:svn co&/svn/trunk&v8/build/gyp&打开cmd,进入v8目录:生成32位的vs2010:third_party/python_26/python build/gyp_v8此时在build下能找到all.sln,编辑即可。如果需要生成64位的build,则需要third_party/python_26/python build/gyp_v8&-Dv8_target_arch=x6464位和32位的项目不能同时生成,只能build好后再重新使用gyp生成。另外,默认vcrt是静态链接的,这样会导致CLI C&#43;&#43;项目编译出现问题,对这个问题,如图所示,修改代码生成的运行库位MDd(DEBUG)或MD 即可
无相关信息接二连三的事情,时间比较紧张,但是还是没有把这个系列的文章丢掉,因为这也是对自己知识的总结吧。提倡大家多写写,以后再看的时候会有种莫名的小激动。上周写的是chromium的目录结构,好像大家不太感兴趣,在我看来这部分很重要。开头有链接地址,大家想看可以再看看。&& & 从源码下载到编译,到目录结构,今天终于到了重要的环节,调试。& & 在windows上,调试工具都是使用微软自家的产品:Visual Studio或者winDBG(windebug)。Chromium也是与时俱进,现在主要使用Visual Studio2013。我今天主要讲使用vs2013调试源码。&& & 我在编译代码那一章(http://my.oschina.net/ghost045/blog/395973)的时候曾经讲过生成源码工程的东东,如下:set GYP_MSVS_VERSION=2013set GYP_GENERATORS=msvs-ninja,ninjaset GYP_DEFINES=component=shared_libraryset PATH=C:/depot_tools/python276_bin/;C:/depot_tools/;python.exe src/build/gyp_chromiumsrc/chrome/chrome.gyp &&log.txt 2&&1&& & 运行成功后,打开src/chrome文件夹,发现下面多了好多文件----都是工程文件。& & 如果你已经安装了vs2013,那么直接双击打开chrome.sln即可。打开后在解决方案资源管理器可以看到所有的解决方案信息。&& & 点击展开上图中的chrome文件夹,选择chrome解决方案,右键设置为启动项目,然后直接F5(调试-&开始调试)就可以启动程序调试了。&& & 如果想以其他的解决方案为启动项目,可以直接右键设置就行。不过需要增加下面一步设置:右键打开想要设置的启动项目的属性& & 点击左边的调试选项,设置“命令”,直接将文件地址设置为chrome.exe的绝对路径地址&这样就可以直接选择从不同的解决方案启动调试了。&& & & &chromium是多进程架构,我们启动后只能调试主进程,其他的renderer进程和插件扩展进程是单独的,不能被直接调试。下面提供几种方法可以调试其他进程:1.单进程模式& & 最简单的方法是将chromium运行在单进程模式。这样你会看到整个程序的状态,没有额外的工作(虽然它仍会有很多的线程)。使用单进程模式,需要在在Chrome项目属性调试页中的命令行参数添加--single-process。这种方法并不完美,因为有些问题不会出现在这个模式。默认情况下,Visual Studio选择Browser/browser.exe为启动项目,需要用户手动选择chrome解决方案右键设置为启动项目。2.启动chrome的调试log& & 在命令行参数添加--enable-logging --v=1,运行期间的log将会保存在文件中,debug版本的放在out/Debug下的chrome_debug.log中,release版本的放在C:/Users/账户名/AppData/Local/Chromium/User Data目录中。3.使用vs2013自带的“附加到进程”选项调试& & 直接在vs2013中调试时,可以使用附加到进程的功能,直接开启调试后,点击Tools & Attach to Process,附加你需要调试的进程即可。& & 如果你想调试的renderer进程的内容发生在进程启动时,那么可以在命令行参数增加--renderer-startup-dialog和--no-sandbox,这两个必须同时使用,才能在renderer进程启动时弹出窗口让你及时附加到进程上。&& & 另外还有很多有用的参数可以设置,使用这些参数可以让你随心所欲的实现自己想要调试的内容,chromium团队也在一直努力让调试变得更简单实用。其他的命令可以查看文件:content_switches.cc,里面标识了各种参数以及含义。调试的东西很多,今天就先讲这么多,讲多了也难以消化,之后我还会给大家带来更细致的讲解,包括windebug调试。&如果大家有什么疑问或者有什么问题想要和我探讨,希望大家关注微信公众平台:程序员互动联盟(coder_online)这里有你想要的。&
最新教程周点击榜
微信扫一扫轻松解决不能在 Chromium 上播放 MP3 的问题
之前我们给大家介绍过一 个号称非常强大的音乐扩展 ,在 Chrome
可以很好的工作,但你可能会注意到这个扩展在 Chromium 或者其他基于 Chromium 的浏览器中 中却不会播放音乐,怎么回事儿?
原来,由于 Chromium 是 Chrome 背后的开源软件,为了避免授权和专利的问题,在 Chromium
中是不能直接内置音频以及视频解码器的,所以就造成了 Chromium 不能播放 MP3 的问题。之前有很多网友问 Chromium
中为何没有内置 Flash player 插件,也同样是这个道理。
幸运的是,有一个非常简单的办法就能够解决这个问题,即直接将 Chrome 中的相应音/视频解码器组件复制到 Chromium
的文件夹里就可以了。下面我们说一下具体的方法,不过在这之前,你需要将 Chrome 和 Chromium 都装上,因为要从 Chrome
的文件夹中复制相应的文件嘛,当然最好是安装最新 Dev 分支 Chrome 浏览器。
Windows 系统:
1、找到 Chrome 文件夹中的三个文件: avcodec-52.dll, avformat-52.dll, and
avutil-50.dll,比如在最新的 Chrome 6.0.437.3 dev 中,这三个文件所在的路径就是:
C:\Users\You\AppData\Local\Google\Chrome\Application\6.0.437.3
如果,你的系统盘不是 C 盘,也可以直接按 win+R 键调出运行对话框,输入 %localappdata%
并回车,再到相应的下级文件夹中就可以找到这三个文件。
2、将这三个文件复制到 Chromium 文件夹下,比如:
C:\Users\Lee\AppData\Local\Chromium\Application\6.0.442.0
通过上面的操作之后,在 Chromium 中就可以直接调用相应的解码组件进行音/视频解码了。
Linux 系统:
1、在 Linux 系统中只需找到 libffmpegsumo.so 这一个文件,在 Ubuntu 中这个文件的位置在:
/opt/google/chrome
其他的 Linux 发行版文件所在的位置可能不一样,大家可以自己找一下。
2、将 libffmpegsumo.so 这个文件复制到你的 Chromium 文件夹,比如:
/~/Chromium/
如果你确保 Chrome 一直不卸载的话,也可以创建一个
直接指向这个文件就可以了,这个 操作也可以用来在 Chromium 中实现 Flash player 插件。
Mac 系统:
1、在 Chrome 的 Libraries 文件夹中找到 libffmpegsumo.dylib 文件,比如在 Chrome
6.0.437.3 中的路径则为:
/Applications/Google
Chrome.app/Contents/Versions/6.0.437.3/Google Chrome
Framework.framework/Libraries
2、将 libffmpegsumo.dylib 文件复制到 Chromium 中对应的文件夹内,并替换文件夹内原有的
libffmpegsumo.dylib 即可。当然这一切可以通过终端来完成。

我要回帖

更多关于 vs2015编译chromium 的文章

 

随机推荐