批处理编译源代码
1、编辑:编写代码,制作C语言的源文件。
2、编译:是由编译程序将C语言源文件转换成二进制中间文件,对文件内部的语法语义做处理,如果编译出错,无法进行后续动作。
3、链接:将编译中生成的中间文件组合成二进制可执知行文件,这一步会对文件之间的关联做检查,如果出错,将不会生成可执行文件,也就无法执行。
4、执行:运行可执行文件,这一步道是编写代码的最终目的。
(1)批处理编译源代码扩展阅读:
DOS命令通常分为三类:内部命令、外部命令和批处理命令。
1、内部命令:
其包含在命令解释程序COMMAND.COM中,一旦启动DOS,这些命令就被调入内存,只要在DOS系统提示符下输入这些命令,就可立即执行。
2、外部命令:
其以文件的形式存储在系统盘上,所带扩展名为COM和EXE。DOS启动时,它们并没有被调入内存,执行前必须从系统盘读进内存。因此输入外部命令时,要了解该命令是否在当前盘上,不然DOS无法找到它们。
3、批处理命令:
实际上是个文件,该文件包含多条命令,当用户键入批处理文件名时,DOS将顺序执行其中的各条命令。注意,批处理命令必须用“.BAT”作为扩展名。
C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单。
当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则就会显得十分重要。
网络-运行命令
网络-C语言
⑵ 如何反编译Apk得到java源代码
1.下载反编译工具
需要下载四个工具:dex2jar、JD-GUI、apktool、apktool-install-windows-r05-ibot
dex2jar:将apk中的classes.dex转化成Jar文件。
JD-GUI:反编译工具,可以直接查看Jar包的源代码。
apktool:反编译工具,通过反编译APK中XML文件,直接可以查看。
apktool-install-windows-r05-ibot:辅助windows批处理工具。
下载地址:
dex2jar:http://code.google.com/p/dex2jar/downloads/list
JD-GUI:http://code.google.com/p/innlab/downloads/lis
apktool:http://code.google.com/p/android-apktool/downloads/list
工具截图:
2.解压缩APK包
apk文件也是一种常见的zip,常用的压缩软件就可轻松地解压apk文件。用压缩软件将apk文件中的文件解压到一个文件夹中,得到APK中的资源包括XML文件和classes.dex文件,classes.dex就是java文件编译再通过dx工具打包而成的。
解压截图:
3.反编译dex文件
解压apk文件后,你会发现res目录的图片没有加密,但java源码编译成了一个classes.dex文件,无法用普通的反编译class文件的方法来处理,dex2jar可以将dex文件转换成普通的jar包。
解压下载的dex2jar,把解压后的文件夹放到系统盘跟目录中并把这个目录加到系统path变量中,就可以直接用:dex2jar.bat或dex2jar.sh转换dex文件了。
DOS行命令如下:dex2jar.bat xx\classes.dex(xx是classes.dex文件所在的路径)。
将在同目录得到普通jar包:classes_dex2jar.jar,就可以用处理普通jar包的方法来反编译这个jar包得到原文件。
编译截图:
生成jar文件的截图如下:
4.反编译jar包
得到jar包后,下载自已喜欢的反编译工具,推荐使用JD-GUI,有比较简单的图形界面,可以反编译单个class文件,也可以反编译jar包,比较方便。
打开压缩文件JD-GUI,运行jd-gui.exe,打开上面生成的jar包,即可看到源代码了。
截图如下:
5.反编译xml文件
打开解压的res\layout目录,有很多xml文件,如果你想看下作者是如何设计界面的,你会很失望,因为你看到的是一大堆乱码!这个时候我们需要用到的是apktool。
具体操作方法:将下载的apktool和apktool-install-windows-r05-ibot两个包解压到同一个文件夹下,这个文件夹有三个文件:aapt.exe,apktool.bat,apktool.jar。把这个文件夹也放到系统盘的根目录中并把这个目录加到path变量中。以HelloWord.apk为例:
在DOS命令行中输入:apktool d xx\HelloWord.apk HelloWord得到HelloWord文件夹,此文件夹中的xml文件就是编译好的可以正常查看的文件。
这样就得到了可以得到编译的源码和XML资源。
注意:文件的路径中最好不要出现中文!
http://jingyan..com/article/dca1fa6fbe140ef1a4405212.html
⑶ 如何反编译apk文件得到源码和XML文件
最近因为一些事所以需要得到师兄的某个apk的源代码,但师兄说那个项目包已经删了,哎,没办法,只能自己想办法了。后来找到了反编译apk的方法,现在拿出来分享下。其实这个方法网上都有,我只是记载一下自己这段时间的学习情况。
1.下载工具
首先,要反编译需要下面这
4个工具:
dex2jar:将apk中的classes.dex转化成Jar文件。
JD-GUI:反编译工具,可以直接查看Jar包的源代码。
apktool:反编译工具,通过反编译APK中XML文件,直接可以查看。
apktool-install-windows-r05-ibot:辅助windows批处理工具。
2.解压apk
直接右键解压apk就行了,这没什么好说的。【解压后会有个dex后缀的文件,下面会用到】
3.反编译dex文件
1)解压下载的dex2jar,把解压后的文件夹放到系统盘跟目录中并把这个目录加到系统path变量中,就可以直接用:dex2jar.bat或dex2jar.sh转换dex文件了。
2)DOS行命令如下:dex2jar.bat
xx\classes.dex(xx是classes.dex文件所在的路径)。
将在同目录得到普通jar包:【classes_dex2jar.jar】,就可以用处理普通jar包的方法来反编译这个jar包得到原文件。
4.反编译jar文件
1)解压压缩文件JD-GUI
2)运行该文件夹里的jd-gui.exe,打开上面生成的jar包,
即可看到源代码了。
5.反编译xml文件
为什么要发编译xml文件呢?因为直接解压apk得到的xml文件是乱码来的,我们需要用工具把它调会正常来
具体操作方法:
1)将下载的apktool和apktool-install-windows-r05-ibot两个包解压到同一个文件夹下,这个文件夹有三个文件:aapt.exe,apktool.bat,apktool.jar。
2)把这个文件夹也放到系统盘的根目录中并把这个目录加到path变量中。以HelloWord.apk为例:
3)在DOS命令行中输入:apktool
d
xx\HelloWord.apk
HelloWord得到HelloWord文件夹,此文件夹中的xml文件就是编译好的可以正常查看的文件。
6.后话
不过,说到底反编译还是反编译,还是不能完全地还原出真正的源代码的,比如一般会出现下面这样的问题:
setContentView(2130903048);
在真正的源代码中其实是这样的:
setContentView(R.layout.welcome)
⑷ windows 怎么安装boost
先从官网(www.boost.org)下载最新版的BOOST源码,如图所示
我这里下的是zip的那个
第2步:
编译源代码(放心.这里是傻瓜式的操作,很容易操作)
(1)先把源代码放在E盘,例如 E:oost_1_53_0
(2)在源代码中找到一个批处理bootstrap.bat,运行即可
此时会弹出Building Boost.Jam之类,过一会之后,源代码中新增了1个文件bjam.exe
(3)运行bjame.exe即能编译了(花费时间很长,大概20分
⑸ ccs工程没有active编译不了
1.打开我们安装的CCS工具,显示界面如下:
2.点击“Project”,下拉菜单中点击“Import CCS Projects...”,操作过程截图如下:
点击之后,出现如下截图的界面:
3.选择“Select search-directory”,然后点旁边的“Browse...”,找到要导入的工程目录,我们要导入的“SimpleBLEPeripheral”工程的CCS配置在下面所示路径中:
“C:\ti\simplelink\ble_cc26xx_2_01_00_44423\Projects\ble\SimpleBLEPeripheral\CC26xx\CCS”
选择完路径之后,将搜索出来的项目勾选上,并把“Copy projects into workspace”也勾选上,这样可以将项目导入到工作目录中。选择之后截图显示如下:
4.选择完之后,点击“Finish”,将相关项目导入到CCS中。导入之后显示如下:
到这一步,工程就导入完成了。
CCS工程编译
导入项目之后,我们来演示一下项目的编译,第一次导入项目的话,需要先编译下协议栈,然后才能编译应用,而且因为是第一次导入,所以最好“Rebuild Project”。
具体的操作步骤:
1.在“SimpleBLEPeripheralStack”项目名上点击鼠标右键,下拉菜单中选择点击“Rebuild Project”,协议栈的编译过程就开始了,编译完之后显示如下:
2.在“SimpleBLEPeripheral”项目名上点击鼠标右键,下拉菜单中选择点击“Rebuild Project”,应用部分的编译过程就开始了,编译完之后显示如下:
3.后面如果不再修改协议栈,就可以不去编译协议栈,只编译有改动的应用部分即可。
CCS工程下载及调试
编译完导入的工程之后,我们需要将编译的工程下载到开发板中运行调试。
操作步骤:
1.将协议栈工程设置为“Active”,方法很简单,就是在协议栈工程名上鼠标左键点击一下即可。设置完之后,点击“Run”,下拉菜单中点击“Debug”即可,点击之后就会显示Debug界面,协议栈部分不需要仿真,所以直接关闭就行。
2.将应用部分项目设置为“Active”,然后点击“Run”,下拉菜单中点击“Debug”即可,点击之后就会显示Debug界面,界面截图如下:
3.来看一下调试仿真界面的一些按键的功能,如下图所示:
圈中部分的几个按键的功能分别是:快速执行、暂停、终止仿真、单步运行(会跳入执行的函数内部)、单步运行(不跳入执行的函数内部)和回到上一步。
4.在CCS中复位设备,操作过程显示如下:
点击“Board Reset(automatic)”即可。
这样,编译、下载及调试过程我们也初步的了解了一下。
打开CSDN APP,看更多技术内容
CCS8.3.0创建工程、编译及仿真_qq_36545292的博客_ccs怎么编...
编译完成后点击veiw->Target Configuration 双击XXXX.ccxml在Basic选择Connection以及Board,在advanced界面添加.gel文件 我的gel文件在D:\ti\ccsv8\ccs_base\emulation\boards\evmc6678l \gel中,如果找不到就在ti的安装目录文件夹中用windo...
CMake构建CCS工程与EMCV编译_小裘HUST的博客_cmake编译ccs
因为虽然可以用CMake编译TI的CCS工程,但是调试还是离不开CCS。用CMake只是让程序编写的开发环境变得轻便了,可以在VS Code的界面下完成代码编写和编译,但最后Emulation还是得用CCS。另外,EMCV是OpenCV1.x移植到C6000 DSP上的计算机视觉库,...
CCS安装编译器的方法
TI公司的编译器叫CGT:code generation tools 先下载所需版本的CGT 到TI官网找CGT 在www.ti.com.cn上搜索CGT,即可找到C2000-CGT:C2000代码生成工具-编译器 也可以直接到这里找: C2000-CGT IDE、配置、编译器或调试器 | TI.com.cn查看 TI C2000-CGT IDE、配置、编译器或调试器 的下载量、描述、特性和支持文档并开始设计。https://www.ti.com.cn/tool/cn/C2000-CG
继续访问
TI CC2640R2f蓝牙BLE开发笔记(二)建立peripheral和central工程
目录一、为什么要建立自己的工程:二、看看我们能够编写哪些文件:2.1、大致框架2.2、我们可以修改的文件: 本系列文章由江山(csdn名:补不补布)(github:jianggogogo)自己写成,当中用到引用时都已经标记出来,如果出现版权问题,请直接联系我修改。当然,技术在于分享,欢迎大家转载,不过请注明出处。最后,如果出现有错误的地方欢迎大家指正。 一、为什么要建立自己的工程: 我们从网上...
继续访问
matlab 指定ccs编译器,在CCS5.5中导入CCS3.3工程——指定编译器和修改pr...
首先,得安装CCS3.3,因为后面我们要用到CCSStudio_v3.3/C5500/cgttools下的文件。这其实就是3.3.2版本的编译器,因为之前在CCS5.5和CCS4.2实验时候导入这块板子的CCS3.3版例程的时候会提示警告,说导入的时候有些问题,要你去看project_lo...
CCSv7使用指南连载1:导入工程及编译下载_电机与控制的博客
所以,我们先不建立工程,直接通过导入现有工程的方式去演示CCS的使用。本文采用的硬件平台是F28069 Launchpad。 2 导入工程 点击Project->Import CCS Projects选择相应的工程目录即可,对应基于CCS3.3版本的工程可以通过ImportLegacy CCSv3.3 P...
最新发布 CCS导入工程编译报错This project was created using a version of compiler that is not currently installed
CCS导入工程编译报错
继续访问
BLE开发-CC2640开发笔记(1)
记录CC2640官方软件开发指南中的要点信息,本篇为开发入门部分。 1.CC2640程序开发需要用到的软件工具: BLE-stack:ble-stack-v2.2.1 for cc2640/cc2650 (需要默认路径安装) IDE和仿真器:IDE 可以使用IAR for ARM (推荐7.8以上版本) 或CCS(TI官方开发环境);仿真器支持XDS100
继续访问
通过批处理编译CCS工程_yyzhb111的博客_ccs命令行编译
工作中除了使用脚本(命令行)编译Keil工程,还需要使用CCS(TI-C2000) TI提供的CCS-IDE,会自动生成MakeFile,通过调用gmake编对MakeFile文件进行编译 以CCS6为例: 查看CCS安装目录(ti/ccsv6/utils/bin),可以看到gmake.exe ...
CCS5.5编译问题
CCS5.5 编译报错
继续访问
CCSv7使用指南连载3:CCS文件及编译构建过程
本系列文章主要目的是介绍CCS使用入门及在实际项目开发过程中有用的技巧及方法,第3篇介绍如何在同一个workspace下面管理工程以及相应CCS文件的介绍。
继续访问
【BLE-CC2640】CC2640之快速入门
本文简介如何从CC2541快速入门至CC2640
继续访问
CCS5导入工程时出错:Issues that may require your attention were encountered while importing the projects
1.出错 CCS5.5.0导入工程(Import CCS Eclispse Project)时出错:Issues that may require your attention were encountered while importing the projects ,如下图: 2.原因 是由于文件夹名(例如f28335_Sci_Update_Flash_first)和文件夹中的工程名
继续访问
CCS调试工程时,调试选项都不能用的排查方法
使用ccs时, 点击debug,可以下载代码同时进行在线调试。 如果点击下载了,但是没有出现调试怎么处理呢? 如下图,调试的按钮都是灰的。 可以使用如下的排除方法: 1、(80%的可能性)首先要保证你的工程编译是通过的。没有错误才能生成可供调试的文件。 参照如下图片,先回到编辑界面(红色圈圈为ccs edit,右边的为 ccs edit,是两个不同的界面,可用菜单和功能有所不同)。 在编辑界面中,右键单击工程rebuild all,查看下problems窗口的输出,不能有错误。(如果界面没
继续访问
CCS使用教程05:CCS8.0常用菜单
目录 01 CCS的介绍、下载与安装 1 CCS的介绍 2 下载 3 安装 02 创建一个CCS工程 1 工作空间 2 创建一个新的CCS工程 3 编译与生成 03 工程导入 1 前面的话 2 导入工程 3 完整工程的结构 04 程序烧写与仿真 1 目标配置文件CCXML 2 连接仿真器 3 烧写程序(装载程序) 4 在线仿真 05 CCS8.0常用菜单 1 CCS编辑界面与调试界面 2 编译 3 搜索 4 打开窗口 ...
继续访问
CCS-工程头文件与库文件的链接编译教程
首先,明确C语言中头文件与库文件的区别。 简单来说:用户通过头文件找到库文件中头文件中有函数的申明,库文件实现函数的定义。 比如,printf函数。使用时应包括头文件stdio.h,打开头文件stdio.h你只能看到,printf这个函数的申明,却看不到printf具体是怎么实现的,而函数的实现在相应的C库中。而库文件一般是以二进制形式而不是C源文件形式提供给用户使用的。程序中包括了stdio.h这个头文件。链接器就能根据头件中的信息找到含有printf这个函数的实现的库文件,从而把这段代码(printf函
继续访问
CCS3.3编译链接库文件与头文件
编译的include文件目录 Compiler -》 Preprocessor-》include search path //include文件搜索路径 $(Proj_dir); //注释:工程所在文件同级目录下 ../../include;
继续访问
ssh: connect to host slave2 port 22: Connection refused
1.命令行输入: 更新安装包 $ sudo apt-get update 下载ssh $ sudo apt-get install ssh 完成
继续访问
热门推荐 CCS如何打开已建好的工程
CCS如何打开已建好的工程 文章转自网络文库 1、首先什么也不干,直接打开ccs软件,打开之后点击圆圈圈中的。 2、打开之后会出现这样一个对话框,然后点击红圈圈中的。 3、然后就在电脑中找到你要打开的工程的那个文件夹。 4、找到之后选中工程所在的文件夹然后点击确定。
继续访问
CCS以相对路径的方式添加文件到工程
在CCS建立的工程中添加相对路径的文件
继续访问
hutool 读取扩展名文件_使用Keil下载单独的Hex文件到单片机内
前言初学STM32时,是通过串口1把Hex文件下载进STM32的,需要一个串口模块,而且还要设置BOOT0和BOOT1电平,然后通过FlyMcu软件进行下载,这也是一种不错的方法,这里我要介绍的是使用JLink调试器和Keil MDK-ARM来下载Hex文件,无需源代码,只需要一个调试器。所需要的工具和软件Hex文件,如Demo_STM32.hexKeil软件,v4或v5版本,如Keil v5.1...
继续访问
CCS 如何打开一个工程 Code Composer Studio
CCS软件是一个eclipse框架软件,但做单片机的多数都对此类软件是文盲,遇到问题多网络。 CCS软件可以新建一个工程,也可以通过import导入别人的工程。 通过import导入别人的工程有一个前提,就是你所使用的CCS版本必须要大于等于别人的工程版本。 最好的方式就是自己建立一个工程,然后把别人的文件拷贝进自己的工程,具体操作如下: 1 打开ccs新建一个工程。 2 在别人的工程里选择所有.c和.h文件。 3 粘贴到自己的工程。 详细截图: 1 打开ccs新建一个工程。 得到 2 在别人的工程.
继续访问
【电力电子】搭建TMS320F28335的编译环境CCS的方法
1、从哪下载CCS?2、从哪下载官方例程?3、如何快速拥有一个自己的project? 安装要点:两种方式任选其一(在线包、离线包)、两个条件必不可少(非中文路径、防火墙&杀毒软件关闭)。 3、如何快速拥有一个自己的project? 新建一个project,然后将例程中CMD,INCLUDE,SRC文件夹复制过来即可。具体如下:CCS软件安装说明和基本使用通常采用CCS来对TMS320F28335进行程序编写调试,本节简要介绍工程导入和程序固化的方法。建立CCS的工程有新建工程和导入工程两种方式
继续访问
关于ccs软件的简单使用
CCS软件应用实验 使用CCS5.5版本的程序。 目的: (1)导入既有CCS工程,编译、运行和调试DSP应用程序; (2)创建应用型工程、源文件和目标配置文件; (3)掌握CCS的基本调试步骤和内存数据观察方法。 界面: 注意右边CCS Edit表示界面是代码编辑界面: 注意左边选择CCS Debug表示代码调试界面: 一、创建一个Hello world简单程序: 1)Project->New CCS Project 2)按下图选择 Proj...
继续访问
CCS5.5导入已有工程
场景: 提示:这里简述项目相关背景: CCS5.5 问题描述 提示:这里描述项目中遇到的问题: 导入已有工程 解决方案: 提示:这里填写该问题的具体解决方案: 双击打开CCS5.5,设置空间 尽量选择不要在C盘。选择下图所示的选项,将已有文件导入 这样就可以导入文件了。 此外,工程里一般有4个文件夹,Code自建代码,含Alg算法类,APP模块化,Dat数据类,Drv DSP外设配置类。这四个文件夹一般含include和Source两个子文件,前者头文件,后者源代码。 DEBUG,系统自动生成
继续访问
ccs工程编译
CC26
⑹ 请问:我在 Notpad++ 中编写了C语言的代码,然后怎样将它编译和运行
1.先安装Dev-c++,在安装目录找到“Dev-Cpp(安装目录)\bin\gcc”,就是它了。
2.将“Dev-Cpp(安装目录)\bin”添加至系统环境变量PATH中:
右击“我的电脑”-选择“属性”-选择“高级”先项卡-点击“环境变量”按钮进“环境变量设置”对话框-在下面找到Path选中并点击“编辑”按钮-在“变量值”文本框内的最后加上
;Dev-Cpp(安装目录)\bin
如我的就上加上了;D:\Program
Files\Dev-Cpp\bin
不要忘记那个分号。
测试一下:
随便找个c文件,你也可以自己写个。使用命令提示符cd到c文件保存的目录,然后:
gcc
-o
test.exe
(你的c文件名).c
如果有提示语法错误或者在当前目录生成了test.exe那说明gcc可用了,如果提示<'gcc'
不是内部或外部命令,也不是可运行的程序或批处理文件。>请回到本步骤重新开始,甚至第一步。
3.打开Notepad++选择“运行”-“运行”(或直接按F5)填入
cmd
/k
gcc
-o
"D:\study\c\output\$(NAME_PART).exe"
"$(FULL_CURRENT_PATH)"
&
PAUSE
&
EXIT
点保存,设置快捷键为F9
再按F5填入
cmd
/k
"D:\study\c\output\$(NAME_PART)"
&
PAUSE
&
EXIT
保存,设置快捷键为Ctrl+F9
至止,环境搭建完成,当你用N++编写程序时,先保存再按F9可编译,然后再按Ctrl+F9开看到运行结果。
对上面的命令做个解译:
Notepad++拥有自己的环境变量。
$(NAME_PART)
代表当前正操作的文件的文件名,不含后缀
$(FULL_CURRENT_PATH)
代表当前正操作的文件的完整路径,包括盘符、路径、文件名、后缀
至于gcc,-o参数就是将一个c文件编译成exe文件
⑺ CMake和Make之间的区别
CMake的是构建系统的生成器,CMake代表跨平台Make。它可以产生Makefile文件,它可以产生Ninja构建文件,它可以产生KDevelop或XCode的项目,它能产生Visual Studio解决方案。从同一个CMakeLists.txt文件来产生项目。如果你正在编写需要在很多不同的平台上构建的软件那么CMake的往往是一个不错的选择。
写程序大体步骤为:
1.用编辑器编写源代码,如.c文件。
2.用编译器编译代码生成目标文件,如.o。
3.用链接器连接目标代码生成可执行文件,如.exe。
但如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是就有了make工具,它是一个自动化编译工具,你可以使用一条命令实现完全编译。但是你需要编写一个规则文件,make依据它来批处理编译,这个文件就是makefile,所以编写makefile文件也是一个程序员所必备的技能。
对于一个大工程,编写makefile实在是件复杂的事,于是人们又想,为什么不设计一个工具,读入所有源文件之后,自动生成makefile呢,于是就出现了cmake工具,它能够输出各种各样的makefile或者project文件,从而帮助程序员减轻负担。但是随之而来也就是编写cmakelist文件,它是cmake所依据的规则。所以在编程的世界里没有捷径可走,还是要脚踏实地的。
原文件--camkelist ---cmake ---makefile ---make ---生成可执行文件
⑻ 如何在windows下编译Chrome源代码
一,编译之前的准备。
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目录下。
四 chrome涉及的开源项目
Chrome 采用了很多开源项目,这里把它们列出来以备后用,目前Chrome涉及25个开源代码:
1、Google Breakpad
/src/breakpad
开源的跨开台程序崩溃报告系统。
2、Google URL
/src/googleurl
Google小巧的URL解析整理库。
3、Skia
/src/skia
矢量图引擎。
4、Google v8
/src/v8
Google开源的JavaScript引擎。V8实现了ECMA-262第三版的ECMAScript规范,可运行于Windows XP 和 Vista, Mac OS X 10.5 (Leopard), 及 Linux等基于IA-32 或 ARM 的系统之上。V8可单独运行也可嵌入到任何C++程序中。
5、Webkit
/src/webki
开源的浏览器引擎
6、Netscape Portable Runtime (NSPR)
/src/base/third_party/nspr
Netscape Portable Runtime (NSPR) 提供了系统级平台无关的API及类似libc的函数。
7、Network Security Services (NSS)
/src/base/third_party/nss
Network Security Services (NSS) 一套用于支持服务器端与客户端安全开发的跨平台函数库。程序通过NSS可支持SSL v2 and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 认证及其它一些安全标准。
8、Hunspell
/src/chrome/third_party/hunspell
Spell checker and morphological analyzer library and program designed for languages with rich morphology and complex word compounding or character encoding.
9、Windows Template Library
/src/chrome/third_party/wtl
用于开发Windows程序与UI组件的C++ library。WTL扩展了ATL (Active Template Library) 并提供一套用于controls, dialogs, frame windows, GDI objects等开发的类。
10、Google C++ Testing Framework
/src/testing/gtest
Google用于编写C++测试的基于xUnit架构的框架,可用于多种平台上:Linux, Mac OS X, Windows, Windows CE, and Symbian。支持自动测试发现,有一套丰富的Assertions断言,用于可自定义断言,death tests, fatal and non-fatal failures, various options for running the tests, and XML test report generation.
11、bsdiff 与 bspatch
/src/third_party/bsdiff 及 /src/third_party/bspatch
bsdiff 与 bspatch 用于为二进制文件生成补丁。
12、bzip2
/src/third_party/bzip2
bzip2使用Burrows-Wheeler block sorting text compression 算法与Huffman编码压缩文件。
13、International Components for Unicode (ICU)
/src/third_party/icu38
ICU是一套成熟并被广泛使用的C/C++ 及 Java 库,可为软件提供Unicode与全球化支持。
14、libjpeg
/src/third_party/libjpeg
用于处理JPEG (JFIF)图像格式的库。
15、libpng
/src/third_party/libpng
PNG图像格式库。支持绝大部分的PNG特性,可扩展。已经被广泛地使用了13年以上了。
16、libxml
/src/third_party/libxml
C语言的XML解析库。
17、libxslt
/src/third_party/libxslt
C语言的XSLT库。
18、LZMA
/src/third_party/lzma_sdk
LZMA为7-Zip软件中7z格式压缩所使用的压缩算法,有很好的压缩效果。
19、stringencoders
/src/third_party/modp_b64
一系列高性能的c-string转换函数,比如:base 64 encoding/decoding。通常比其标准实现快两倍以上。
20、Netscape Plugin Application Programming Interface (NPAPI)
/src/third_party/npapi
多种浏览器使用的跨平台插件架构。
21、Pthreads-w32
/src/third_party/pthread
用于编写多线程程序的API
22、SCons - a software construction tool
/src/third_party/scons
开源的软件构建工具——下一代的编译工具。可以认为SCons是改进过的跨平台配上autoconf/automake与ccache的Make工具的子系统。
23、sqlite
/src/third_party/sqlite
大名鼎鼎的嵌入式数据库引擎。自管理、零配置、无需服务器、支持事务。
24、TLS Lite
/src/third_party/tlslite
SSL 3.0, TLS 1.0, and TLS 1.1的Python免费实现库。TLS Lite支持这些安全验证方式:SRP, shared keys, and cryptoIDs in addition to X.509 certificates。注:Chrome并不包涵Python。TLS Lite用于Chrome开发过程中的代码覆盖、依赖检查、网页加载时间测试及生成html结果比较等。
25、zlib
/src/third_party/zlib
zlib为一套用于任意平台与机器的无损数据压缩的库,它免费、自由、无任何法律专利问题。