WinCE5.0/6.0下,通過command line實現自動化編譯

來源:互聯網
上載者:User

原文地址::http://space.itpub.net/16912323/viewspace-504721

先來解釋一下:一般我們要編譯WinCE都是先建立工程,然後再IDE的開發環境中進行編譯。對於WinCE5.0來說,是用Platform.
Builder5.0;對於WinCE6.0來說,就是用VS2005,因為PB6.0已經整合到VS2005裡面了。這樣有個問題,就是每次都要人來手動編譯。讓我來舉個例子,這是我在做項目中遇到的。公司基於ARM的平台開發BSP,而且已經release了,但是公司有很多產品都基於這個平台,每個平台根據功能不同對WinCE進行了不同程度的裁剪,所以每個產品對應一個工程。這樣問題就出現了,如果要進行測試,我們就需要有人手動的把每一個工程都編譯出來,然後才能進行測試,這樣會很耽誤時間。如果是用自動化編譯,只需要通過指令碼命令把要編譯的工程輸入,然後運行,到了第二天早上,所有產品的image就都編譯出來了,這樣會很節省時間。
 

 

現在就開始介紹如何?,有個前提是你已經建立了一個WinCE工程並且在裡面為這個工程建立了SDK,當然如果你不需要匯出SDK的話,你就不需要建立SDK了。WinCE5.0和WinCE6.0的命令有些小的區別,我會分開介紹:  

 

對於WinCE5.0: 

 

1. pbxmlutils.exe

 在“\Windows CE Platform. Builder\5.00\CEPB\BIN”下面可以找到,這個命令可以從PB的文檔中查到。主要作用是通過解析你的工程檔案<OS Design Name>.pbxml來獲得與該工程相關的環境變數,併產生一個指令碼來設定這些環境變數。格式如下:  

pbxmlutils /getbuildenv /workspace "%_WINCEROOT%\PBWorkspaces\<OS design name>\<OS design name>.pbxml" /config "<BSP>: <Target device>" > SetEnv.bat

看著可能有點暈,我來舉個例子:

pbxmlutils /getbuildenv /workspace "%_WINCEROOT%\PBWorkspaces\MyWorkspace\MyWorkspace.pbxml" /config "CEPC: x86_Release" > SetEnv.bat

其實就兩個參數,第一個參數很多人都知道如何設定,第二個參數config可能有些人不太瞭解,你可以開啟你的工程,然後查環境變數PBCONFIG的值,用這個值就可以了。

2. Blddemo.exe

這個應該比較熟悉。編譯WinCE的時候,實際上就是調用Blddemo -q,不多說了。

3. buildsdk.exe

這個是用來編譯SDK的。格式如下;

buildsdk [MyOSDesign.pbxml]

很簡單,不過還是給個例子:

buildsdk "%_WINCEROOT%\PBWorkspaces\MyWorkspace\MyWorkspace.pbxml"    

 

對於WinCE6.0: 

 

1. pbxmlutils.exe

在“\Microsoft Platform. Builder\6.00\cepb\IdeVS”下面可以找到,這個命令可以從PB的文檔中查到。主要作用是通過解析你的工程檔案<OS Design Name>.pbxml來獲得與該工程相關的環境變數,併產生一個指令碼來設定這些環境變數。格式如下:  

pbxmlutils /getbuildenv /workspace "%_WINCEROOT%\OSDesigns\<OS design name>\<OS design name>\<OS design name>.pbxml" /config "<BSP> <Target device>" > SetEnv.bat

來舉個例子:

pbxmlutils /getbuildenv /workspace "C:\WINCE600\OSDesigns\MyWorkspace\MyWorkspace\MyWorkspace.pbxml" /config "CEPC x86 Release" > SetEnv.bat

和WinCE5.0有些小的區別,要注意一下。同樣如果不知道第二個參數config如何設定,可以開啟工程,查環境變數PBCONFIG的值,用這個值就可以。

2. Blddemo.exe

這個和WinCE5.0用法一樣。編譯WinCE的時候,實際上就是調用Blddemo -q。

3. buildsdk.exe

這個是用來編譯SDK的。格式如下;

buildsdk [MyOSDesign.pbxml] [MySdkConfig.sdkcfg]

很簡單,不過還是給個例子:

buildsdk "\OSDesigns\MyWorkspace\MyWorkspace\MyWorkspace.pbxml" "\OSDesigns\MyWorkspace\MyWorkspace\SDKs\SDK1\SDK1.sdkcfg"  

 

基本上,自動化編譯所需的主要命令都已經介紹完了,下面介紹如何使用上面的命令實現:  

 

對於WinCE5.0:

@echo off

@set _WINCEROOT=c:\wince500

@set _PBROOT="c:\Program Files\Windows CE Platform. Builder\5.00"

@set PATH=%PATH%;c:\Program Files\Windows CE Platform. Builder\5.00\cepb\bin

cd /D %_WINCEROOT%

if exist build.log del build.log

if exist build.wrn del build.wrn

if exist build.err del build.err

pbxmlutils /getbuildenv /workspace "%_WINCEROOT%\PBWorkspaces\MyDesign\MyDesign.pbxml" /config "Samsung SMDK2410: ARMV4I_Release" > buildenv.bat

call buildenv.bat

call %_TARGETPLATROOT%\%_TGTPLAT%.bat

call Blddemo -q

buildsdk "%_WINCEROOT%\PBWorkspaces\MyDesign\MyDesign.pbxml"

 

對於WinCE6.0:

@echo off

@set _WINCEROOT=d:\wince600

@set _PBROOT=C:\Program Files\Microsoft Platform. Builder\6.00

@set PATH=%_PBROOT%\cepb\idevs;%PATH%

cd /D %_WINCEROOT%

if exist build.log del build.log

if exist build.wrn del build.wrn

if exist build.err del build.err

pbxmlutils /getbuildenv /workspace "%_WINCEROOT%\OSDesigns\MyDesign\MyDesign\MyDesign.pbxml" /config "CEPC x86 Release" > buildenv.bat

call buildenv.bat

call %_TARGETPLATROOT%\%_TGTPLAT%.bat

call Blddemo -q

call buildsdk "%_WINCEROOT%\OSDesigns\MyDesign\MyDesign\MyDesign.pbxml" "%_WINCEROOT%\OSDesigns\MyDesign\MyDesign\SDKs\SDK1\SDK1.sdkcfg"

上面針對WinCE5.0和WinCE6.0的兩個命令略有不同,但是原理是一樣的。只要有點Windows指令碼命令的知識,瞭解WinCE的整個編譯過程,看懂上面的代碼應該沒問題,這裡就不作介紹了。

 

上面給出的只是例子,上面的代碼,可以實現command line編譯WinCE並且還可以匯出SDK。如果想實現對多個工程進行編譯,只需要對上面的指令碼作些修改就可以了。上面的指令碼完全可以改寫成函數的形式,通過傳遞工程檔案名稱和平台的config來編譯WinCE,這樣就可以對多個工程順序進行編譯,這裡就不介紹了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.