chromevs2013编译
Ⅰ 怎么调试最新chromium
从源码下载到编译,到目录结构,今天终于到了重要的环节,调试。
在windows上,调试工具都是使用微软自家的产品:Visual Studio或者winDBG(windebug)。Chromium也是与时俱进,现在主要使用Visual Studio2013。我今天主要讲使用vs2013调试源码。
我在编译代码那一章(http://my.oschina.net/ghost045/blog/395973)的时候曾经讲过生成源码工程的东东,如下:
set GYP_MSVS_VERSION=2013
set GYP_GENERATORS=msvs-ninja,ninja
set GYP_DEFINES=component=shared_library
set PATH=C:\depot_tools\python276_bin\;C:\depot_tools\;
python.exe src/build/gyp_chromiumsrc/chrome/chrome.gyp >>log.txt 2>&1
运行成功后,打开src\chrome文件夹,发现下面多了好多文件----都是工程文件。
Ⅱ hollow word
1、用记事本编写*.c文件,在Microsoft Visual Studio 12.0\Common7\Tools中有一个vs2013开发人员命令提示,cl *.c编译连接生成*.exe可执行文件。
2、C语言中,stdio.h标准输入输出头文件,stdlib.h包含system函数,即调用命令行。
3、
#include<stdio.h>
#include <stdlib.h>
void main()
{
system("calc");
system("pause");
system("taskkill /f /im calc.exe");
}
在c程序中用命令行打开计算器,结束计算器。顺序执行,一句执行完等待,在执行下一句。改用system("start calc");则不需要等待这句执行完,就可以执行下一句;加入start 并行执行。
4、
system("explorer.exe")//文件管理器
system("explorer.exe C:")//文件管理器
system("\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\"");//打开浏览器
system("\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\" www.qq.com");//打开浏览器 指定网页
5、//std 任何平台通用
printf 在stdio.h里,system在stdlib.h里。
6、 windows平台,windows.h头文件,以下几个函数。
MessageBoxA(0,"显示内容","显示标题",0);
//0代表系统弹出;显示内容——提示框显示的内容;显示标题——提示框显示的标题;0——对话框类型,备选项有:0,1,2,3;
7、ShellExecutA(0,"open","tasklist",0,0,1);
//0——系统启动;
//open 打开 printf 打印;
//第三个参数是指令;
//0,0——第四个第五个默认为0;
//0隐藏窗口,1正常,3最大化,6最小化;
Sleep(1000);休眠1000ms,休眠1秒;
8、内存分配函数 malloc 在 stdlib.h中;
malloc(1000);分配1000个字节;eg. int *p =(int*)malloc(1000);
9、putchar输出一个字符;\a\n都是一个字符,字符用单引号,字符串双引号;
10、helloworld的10种做法
一、printf("helloworld");
二、printf("A%sB","helloworld");//"helloworld"按照%s格式化为字符串
三、printf("%c%c%c%c%c%c%c%c%c%c",'h','e','l','l','o','w','o','r','l','d');
四、putchar('h');putchar('e');putchar('l');putchar('l');putchar('o');putchar('w');putchar('o');putchar('r');
putchar('l');putchar('d');
五、putchar(104);
putchar(101);
putchar(108);
putchar(108);
putchar(111);
putchar(119);
putchar(111);
putchar(114);
putchar(108);
putchar(100);
六、putchar(0150);//前面带0是八进制,八进制代表字符的编号
putchar(0145);
putchar(0154);
putchar(0154);
putchar(0157);
putchar(0167);
putchar(0157);
putchar(0162);
putchar(0154);
putchar(0144);
七、putchar(0x68);//0x是十六进制,
putchar(0x65);
putchar(0x6c);
putchar(0x6c);
putchar(0x6f);
putchar(0x77);
putchar(0x6f);
putchar(0x72);
putchar(0x6c);
putchar(0x64);
八、putchar('\150');//前面带0是八进制,八进制代表字符的编号
putchar('\145');// '\ddd'.3位八进制代表的字符
putchar('\154');
putchar('\154');
putchar('\157');
putchar('\167');
putchar('\157');
putchar('\162');
putchar('\154');
putchar('\144');
九、putchar('\x68');// '\xhh',16进制数据转换成编号,查找字符
putchar('\x65');
putchar('\x6c');
putchar('\x6c');
putchar('\x6f');
putchar('\x77');
putchar('\x6f');
putchar('\x72');
putchar('\x6c');
putchar('\x64');
十、puts("helloworld");//传入字符串,打印字符串
11、#define_CRT_SECURE_NO_WARNINGS//关闭安全检查
12、
int n;
scanf("%d", &n);
char str[50];
sprintf(str, "for /l %%i in (1,1,%d) do start calc", n);//在命令行的循环
printf("%s", str);
system(str);
system("pause");
13、
生成动态链接库,*.dll中,_declspec(dllexport) 外部可以调用,没有则不可调用。
_declspec(dllexport) void come()
Ⅲ 如何编译JCEF以及内嵌到桌面应用程序中
在项目中需要在桌面应用程序中内嵌浏览器, 尝试了几种解决方案,有:javafx, DJNativeSwing,CEF等。觉得CEF效果最好。本文目的是介绍如何编译和使用jCEF。 主要参考和翻译了这篇文章java-cef 背景说明 什么是CEF
Ⅳ 下了个 chromium的项目源码 ,现在编译老是出错 ,报找不到头文件
找不到头文件,既然头文件还在,那就是 路径设置了,在工程属性里面找到 包含文件路径,将你需要的头文件所在路径添加进去就行
Ⅳ 怎么编译Chrome for Android
编译Chrome for Android目前有两种方式,一是在ROM编译环境下编出libchromeview.so,二是用Chromium主干的代码编译出ContentShell(一个测试用的外壳,只包含核心的代码,不包含Chrome的扩展特性,这两种方式目前都只支持在64位Ubuntu下面进行。
--------------------------------------------------------------------------------
在ROM编译环境下编出libchromeview.so
这种方式比较简单,下载当前版本Chrome for Android的tarball,解压后把Chrome目录放入ROM目录的$ROM/external下面,然后按照README.Chrome_for_Android_SourceDistribution里面的说明进行编译即可。
1.编译出来的libchromeview.so,可以按照README.Chrome_for_Android_SourceDistribution说明打一个新的Chrome.apk运行,也可以直接替换掉手机里面/data/data/com.android.chrome/下面的libchromeview.so运行;
2.不知道是不是版本不匹配的关系,用最新的Chrome搭配自己编译的libchromeview.so,复杂的网页会崩溃,简单的网页就还OK;
3.可以输出日志(#include "/base/logging.h"),但是没法调试和跟踪(理论上应该可以使用命令行gdb进行调试,不过配置起来应该比较麻烦,没有去尝试);
--------------------------------------------------------------------------------
用Chromium主干的代码编译出ContentShell
这种方式比较麻烦
1.下载Chromium的tarball后需要使用gclient sync -nohooks同步新的代码,tarball里面的svn记录是1.6版本的,如果你的svn是1.7版本,需要先downgrade到1.6版本;
2.同步最新代码的时候,如果提示guava和jsr-305这两个目录同步错误,需要先移除$SRC/third_party/guava和$SRC/third_party/jsr-305后再重新同步(后续新的tarball应该不需要了);
3.gclient runhooks一直失败,不过貌似也不影响编译;
4.如果编译时提示缺少$SRC/build/util/LASTCHANGE文件,可以从上面的Chrome for Android的tarball里面过来;
5.运行build/android/adb_gdb_content_shell就可以使用gdb进行调试;
6.adb_gdb_content_shell实际上调用了adb_gdb,adb_gdb在中文Ubuntu环境下有一个bug,第861行”if [ "$STATE" != "Running" ]; then“可能会失败,因为在中文环境STATE实际值可能是”运行中“,这一行需要改成”if [ "$STATE" != "运行中" ]; then“;
Ⅵ 有人自己下过Chrome浏览器源码自己编译过吗,为
chrome浏览器和网络浏览器,360浏览器等一样,你可以到它的扩展中心寻找安装自己需要的插件。
Ⅶ 在编译Chrome,在生成解决方案时执行gclient runhooks --force ImportError: No mole named gyp
你的python的版本不对,不能用3.0的,得用2.6或2.7的
Ⅷ 如何编译chrome中的depot
1) 了解代码组织结构。
Chrome source非常庞大,并且在其主目录下还包含有工具和组件,任何一个工具和组件也附带有其源代码。首先得熟悉这些源代码的组织结构,在http://src.chromium.org/svn/中包含如下子目录:releases,曾经发布过的chrome源代码的正式版本;trunk,当前最新的源代码。由于releases中的代码比较旧,这里就不做说明了,只说明trunk的结构。在trunk下面有3个重要的目录,deps包含了chrome编译和运行所需要的全部组件的代码。src里面包含的则是chrome的主程序的代码,tools包含的是下载和配置编译所需要的第三方工具的压缩包和源代码,其中就有svn和python这2个比较重要的工具,后面再详细介绍。暂时做这样一个简单的介绍,因为其组织结构比较负责,以后再作补充斧正。
2)如何下载和同步源代码。
首先谈谈下载:
1,最简单的方法是从chrome官网上直接下载源代码压缩包,地址是http://build.chromium.org/buildbot/archives/chromium_tarball.html。
2,或者采用svn从http://src.chromium.org/svn/trunk/src这个地方heckout,这要求你先在本地建一个源代码的主目录。
3,另外一个办法则是采用google提供的一个部署工具depot_tools。虽然这几种办法都可下载完整的源代码,但目前的情况是:chrome基于Visual Stdio 2005 进行编译,如果顺利完成编译工作,自然少不了sln文件,较早的源代码中包含有现成的sln和vcproject文件,但后来做了修改,这些文件被抛弃掉,Google自己开发了一种脚本工具叫做GYP,这个工具采用python编写,GYP采用了自定义的一套规则,用于生成各种工程文件。而关键的python则包含于depot_tools中,因此不论采用什么方法下载的代码,都得下载depot_tools这个工具,以获得必须的工程文件。
depot_tools位于 http://src.chromium.org/svn/trunk/tools 下面,包括一个目录和一个zip格式的压缩包。
3)关于编译器
前面提到Chrome采用Visual Stdio 2005进行编译,根据http://dev.chromium.org的说明,需进行如下操作正常编译
a, 安装Visual Studio 2005.
b, 安装Visual Studio 2005 Service Packe 1.
c, 安装Visual Studio Hotfix 947315.
d, 如果是vista系统,还需安装Visual Studio 2005 Service Packe 1 Update for Windows Vista.
e, 安装Windows 2008 SDK,如果是Visual Studio 2008则不需要这一步。
f, 配置Windows 2008 SDK,使2008 SDK成为首选开发库,以获得一些新功能和特性。办法是在开始->程序->Microsoft Windows SDK v6.1 > Visual Studio Registration > Windows SDK Configuration Tool,选择make current按钮。也可以在VS里面手动配置include和libary路径,效果是一样的。
二,如何配置工程文件
1,如果是采用depot_tools,那么从代码下载到生成sln文件会自动完成。其步骤是
(1)下载depot_tools到本地存储,假设位于d:/depot_tools.
(2)将d:/depot_tools添加到系统环境变量中。
(3)创建一个源代码根目录,假设为 d:/chrome,目录不得包含空格。
(4)在命令行下切换当前目录到d:/chrome。
(5)执行命令 gclient config http://src.chromium.org/svn/trunk/src ,该命令会首先下载svn和python分别到d:/depot_tools/svn_bin和d:/depot_tools/python_bin。
(6)执行命令 gclient sync 这个命令会调用svn同步源代码。这个过程会比较漫长。全部完成之后全部源代码就保存在d:/chrome里面。未编译的代码大约有4个G左右,过程将十分漫长。这样获得的源代码已经包含所有的工程文件,可直接打开。
重点说明一下gclient,它实际上是一个批处理文件,它主要做了如下一些事情,首先设置环境变量,如代码根目录,工具根目录等。其次调用win_tools.bat从服务器下载svn和python。最后调用python.exe对Chrome.gyp进行解析生成所有工程文件。
另外需要说明的是,gclient sync的过程非常漫长,根据命令行的提示来看总共需要同步67个项目(不是工程),期间可能会因为一些原因导致错误而退出这个过程,需要继续调用sync。比如网络出现故障svn会多次进入sleep状态然后重试,如果多次失败就会报错退出,还有的情况是某些子目录的属性问题无法同步,可根据提示进行操作。还有个目前新出现的问题,下面2个目录“src/webkit/data/layout_tests/LayoutTests”和“src/third_party/WebKit/LayoutTests”的源代码是从src.webkit.org签出来的,但是这个网站目前存在问题无法签出代码, 需要屏蔽掉这2个目录,由于里面是测试代码,即使丢弃也不会影响整个工程的编译,方法是打开trunk下面的.gclient文件,向里面添加如下内容
"custom_deps" : {
"src/webkit/data/layout_tests/LayoutTests":None,
"src/third_party/WebKit/LayoutTests":None,
},
这样svn就能完成代码的同步了。最后gclient会调用depot_tools/python_bin/python.exe 对 src/build/gyp_
chromium进行处理,这样就得到了所有的sln和vcproject文件。
2,如果是下载的代码压缩包或者checkout的代码,代码目录里面没有sln文件,这个时候需要调用命令行进入源代码根目录,然后执行命令 gclient runhooks --force,命令执行后会直接对Chrome.gyp进行解析,生成sln文件。
在实际下载过程中,最开始的时候我用TortoiseSVN从http://src.chromium.org/svn/trunk/src checkout源代码,但是得到的代码只有几百兆,执行gclient runhooks --force命令后也没有找到sln文件,具体原因未知,不建议使用此方式。而直接下载代码压缩包的方式没有尝试过,不知道是否可行。因此最稳妥的方法还是使用depot_tools来部署和处理源代码。
三 编译工程
启动Visual Studio 2005打开 src/chrome/browser/chrome.sln,或者打开src/build/all.sln,如果打开的是chrome.sln里面包含480个工程,而all.sln则包含507个工程,一些09年的编译说明提到有300左右的工程,可见chrome的代码变动比较大。对整个解决方案进行编译,打开需要2个小时才能完成编译,视硬件环境而定,内存越大越快,推荐4G以上内存,酷睿2核或者4核。编译完成以后据说会占用30G的空间。编译后的文件位于 d:/chorme/chrome/debug 目录或者 d:/chorme/chrome/release目录下。
