當前位置:首頁 » 編程軟體 » 批處理編譯源代碼

批處理編譯源代碼

發布時間: 2023-11-05 06:06:03

c語言中的編輯,編譯,連接,運行分別是什麼意思

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為一套用於任意平台與機器的無損數據壓縮的庫,它免費、自由、無任何法律專利問題。

熱點內容
hp存儲擴容 發布:2024-11-17 23:29:16 瀏覽:569
在ftp中put表示什麼 發布:2024-11-17 23:29:12 瀏覽:383
mvc多文件上傳 發布:2024-11-17 23:13:56 瀏覽:155
玩游戲硬碟緩存32m 發布:2024-11-17 23:03:42 瀏覽:525
藍光存儲系統 發布:2024-11-17 23:03:41 瀏覽:436
地平線4提示配置低於最低怎麼辦 發布:2024-11-17 22:54:38 瀏覽:610
注冊銀行卡賬戶密碼填什麼 發布:2024-11-17 22:54:35 瀏覽:537
java壓縮上傳圖片 發布:2024-11-17 22:26:59 瀏覽:627
plc編程課件 發布:2024-11-17 22:18:23 瀏覽:469
我的世界伺服器信號一直在檢測 發布:2024-11-17 22:09:52 瀏覽:547