尋找VS2003版本的一些常用技巧
原來上網(wǎng)我下了很多VS2003版本的Demo。而我用的是VS2005,我在使用這些小樣時(shí),基本上絕大部分基于VS2003的Asp.net工程都因?yàn)樯贁?shù)文件無法轉(zhuǎn)換而無法加載工程,為此我也苦惱很久,后來終于讓我找到了VS2003版本解決辦法。
本文主要針對(duì)S60的開發(fā)環(huán)境的建立,因此首先為大家列出S60系統(tǒng)的各種版本。因?yàn)殚_發(fā)者應(yīng)該根據(jù)需要,選擇自己適合的SDK版本。
1、Series60 ***版 - Symbian OS 6.1
2、Series60 第二版 - Symbian OS 7.0s
3、Series60 第二版 Pack 1 - Symbian OS 7.0s
4、Series60 第二版 Pack 2 - Symbian OS 8.0a
5、Series60 第二版 Pack 3 - Symbian OS 8.1a
6、Series60 第三版 - Symbian OS 9.0
需要要說明的是,Nokia的Symbian/Series60開發(fā)包支持的集成開發(fā)環(huán)境[IDE]工具有很多種,下面列出主要使用的一些IDE:
1、Microsoft Visual Studio 6 / Visaul C++ 6
2、Microsoft Visual Studio .NET [2003] / Visaul C++ 7
3、Borland C++ Builder 6
4、Borland C++ Builder X 1.0
5、Metrowerks CodeWarrior Studio for Symbian Personal/Professional 2.0/2.5
若你使用的IDE是VC6,那么步驟與本文將有所不同,你可以參考網(wǎng)上其他教程,網(wǎng)上講授Symbian環(huán)境設(shè)置的90%以上的文章都是基于VC6的。若你使用VS2003,但是所使用的SDK與本文使用的有所出入,那么本文仍然適用,不過個(gè)別地方也許會(huì)有改動(dòng)。
有什么問題可以提出來,大家一起討論。本文并未講述安裝Nokia Developer Suite - Carbide.vs 來配合VS2003導(dǎo)入、建立S60工程。這部分內(nèi)容將在下一篇文章講解如何建立、導(dǎo)入工程的時(shí)候詳細(xì)講解。因此你可以暫時(shí)不安裝該軟件。等你按照下面的說明將環(huán)境設(shè)置好以后,再安裝此軟件做更深一步研究。涉及此項(xiàng)內(nèi)容的細(xì)節(jié),請(qǐng)參閱:Symbian OS開發(fā)入門(二) :VS2003環(huán)境下Symbian工程的導(dǎo)入與建立。
我個(gè)人原來是使用VC6作為IDE,對(duì)VS2003下的開發(fā)也不是特別熟悉,我是一個(gè)Symbian開發(fā)的初學(xué)者,這里寫的東西是大多數(shù)基于SDK的開發(fā)文檔,結(jié)合自己測試的時(shí)候的一些經(jīng)驗(yàn)教訓(xùn)。寫出來,一方面象引導(dǎo)象我一樣的初學(xué)者盡快入門,另外一方面大家也可以在此基礎(chǔ)上討論,解決一些經(jīng)驗(yàn)錯(cuò)誤。幫助后來者少走彎路。
【開發(fā)環(huán)境建立詳細(xì)步驟】
一、系統(tǒng)要求
文檔中寫了一些對(duì)你PC的要求,反正就是保證你的電腦能運(yùn)行VS2003和SDK。一般沒有什么問題。系統(tǒng)要求Win2000 SP3以上, WinXP SP1以上,Win2003中任意一種。
二、軟件安裝
說明:在安裝SDK以前保證下列1-3項(xiàng)先被正確安裝。安裝軟件的時(shí)候必須保證你所使用的帳號(hào)是你PC的管理員帳號(hào),否則可能導(dǎo)致某些環(huán)境變量不能被正確設(shè)置。SDK和IDE要安裝在電腦上的同一個(gè)分區(qū)。SDK的安裝路徑不能含有空格。下面詳細(xì)說明需要安裝的軟件及其步驟:
1、在安裝SDk之前必須安裝ActivePerl(官方文檔要求安裝Perl 5.6.1 build 531,并說明安裝其他版本可能會(huì)有問題,我自己測試使用ActivePerl-5.6.1.638-MSWin32-x86,運(yùn)行情況良好)。該軟件可以到官方網(wǎng)站下載:http://www.activestate.com/Products/ActivePerl/#t#
2、安裝JAVA Run-Time1.4.1_02 或者新版本,下載地址http://java.sun.com/downloads/index.html.
說明:在使用命令行編譯程序的時(shí)候事實(shí)上是不需要用到JAVA Run-Time1的。但是以后我會(huì)提到,若要使用SDK的一個(gè)強(qiáng)大的工具ApplicationWizard,就必須安裝該組件,同時(shí)若要使用Sisar等工具的話,JRE也必不可少。這里請(qǐng)你就先安裝吧。
3、安裝IDE,如前所述,安裝Microsoft Visual Studio .NET 2003
4、安裝SDK,注意前面所說的SDK的安裝路徑不能含有空格。并且要和IDE裝在同一個(gè)分區(qū),這樣可以避免一些麻煩。下載地址:http://www.forum.nokia.com/main/0,6566,034-4,00.html
5、安裝Nokia Developer Suite - Carbide.vs 。這相當(dāng)于VS2003的一個(gè)插件,用于幫助你導(dǎo)入或者建立S60工程,從而似的你可以在VS2003中編寫代碼。(本文暫時(shí)不講解怎么使用,你可以先安裝,也可以以后用的時(shí)候再安裝)
下載地址:http://www.forum.nokia.com/main/0,,034-902,00.html
三、VS2003版本環(huán)境變量檢查
在2.0版本的SDK之前[不包括1.2For CW],你需要在系統(tǒng)變環(huán)境量中設(shè)置一個(gè)名為EPOCROOT的環(huán)境變量,(什么是環(huán)境變量,如何設(shè)置,這個(gè)去自學(xué)),他要指向你的SDK包含有epoc32的路徑,前面沒有盤符,后面要加一個(gè)"\",這個(gè)一般在你安裝了SDK之后系統(tǒng)會(huì)自動(dòng)替你加好。不過2.0之后的[包括1.2 For CW]就不必設(shè)置了,有一個(gè)名為devices的SDK管理工具會(huì)為一些需要使用這個(gè)變量的工具提供類似模擬EPOCROOT環(huán)境變量的功能??梢园裠evices看作是多個(gè)Symbian SDK,不限于S60,得切換工具,他的使用方法可以在你安裝了2.0SDK之后,在命令行模式下輸入 devices -help 來獲得幫助。
我們使用的這個(gè)版本的SDK不需要設(shè)置太多環(huán)境變量,這里只需要自己加入修改一下環(huán)境變量,在系統(tǒng)環(huán)境變量path中加入:
{VS2003的安裝路徑}\Microsoft Visual Studio .NET 2003\Vc7\bin;這樣才能保證后面用到的LINK.EXE被正確設(shè)置。
四、編譯運(yùn)行“Helloworld” - 檢查開發(fā)環(huán)境是否被正確設(shè)置
上面的安裝步驟完成以后,還沒有大功告成,這時(shí)你需要做的是檢查你的環(huán)境是否被正確設(shè)置。怎樣來確認(rèn)開發(fā)環(huán)境已經(jīng)正確建立了呢?***的方式就是通過編譯、運(yùn)行一個(gè)例子來檢驗(yàn)。需要指出的一點(diǎn)是,下面的步驟可以在可以在Windows的命令行工具中操作,也可以在VS 2003自帶的工具“Visual Studio .NET 2003 命令提示”中操作。在VS 2003的命令行工具中操作,其優(yōu)點(diǎn)是可以避免某些環(huán)境變量設(shè)置有誤而導(dǎo)致的錯(cuò)誤,因?yàn)樗坏到y(tǒng)環(huán)境下PATH變量的內(nèi)容,同時(shí)也包含安裝VC++.NET過程中,添加的一些路徑,包括主要的編譯鏈接等工具。而缺點(diǎn)就是:若你僅僅在這里通過驗(yàn)證,而在WINDOWS自帶的命令行界面沒有通過的話,那么后期會(huì)遇到一些麻煩(例如使用ApplicationWizard建立工程)。所以,如果不使用VC++.NET帶的“命令提示”工具,您也許就會(huì)因?yàn)檎也坏较鄳?yīng)編譯工具,而無法繼續(xù)下去。如果自己勤快一些,可以手動(dòng)把環(huán)境變量加到系統(tǒng)PATH中去,這樣就可以用Windows“附件”菜單中的那個(gè)“命令提示”工具了,后面也許會(huì)順利一點(diǎn)。
1、打開Windows的命令行界面(或者VC++.NET自帶的命令行工具)
2、將剛剛安裝的SDK設(shè)置為默認(rèn)的devices.這個(gè)可以通過下面的命令設(shè)置:
devices -setdefault @S60_2nd_FP2_SC:com.nokia.Series60
事實(shí)上SDK的安裝過程中就會(huì)提示你設(shè)置默認(rèn)的devices。做這個(gè)工作的原因是你的系統(tǒng)中很可能安裝了多個(gè)SDK,那么使用哪個(gè)SDK作為當(dāng)前的開發(fā)工具,就需要正確設(shè)置。你可以使用命令行devices -default來查看當(dāng)前的默認(rèn)SDK是什么。
3、找到Symbian工程文件所在的目錄
現(xiàn)在我們就通過SDK中自帶的例子來驗(yàn)證你的環(huán)境是不是被正確設(shè)置。注意安裝了SDK以后,在其安裝目錄中的Series60Ex文件夾中有很多例子,我們使用helloworldbasic來驗(yàn)證。在命令行界面中用cd命令進(jìn)入helloworldbasic的group目錄:
cd
在group目錄下應(yīng)該包含bld.inf和helloworldbasic.mmp這兩個(gè)文件。這兩個(gè)文件的簡要描述如下:
HelloWorld.mmp:項(xiàng)目定義文件,描述了將要構(gòu)建的項(xiàng)目信息,還定義了一些資源文件和應(yīng)用程序信息文件。它是一個(gè)環(huán)境中立的文件,可以使用各種工具來處理并生成各種目標(biāo)環(huán)境的make文件。您可以使用文本編輯器查看該文件。里面的信息還是很簡明的,包括構(gòu)建目標(biāo),構(gòu)建類型,源路徑,庫文件,頭文件等等信息。
Bld.inf:組件描述文件,它列出了一個(gè)組件當(dāng)中包括的所有項(xiàng)目,VS2003版本還包括一些額外的構(gòu)建指令。您也可以使用文本編輯器查看該文件。對(duì)于本實(shí)例來說,僅包括一個(gè)項(xiàng)目HelloWorld.mmp。
4、在命令行中輸入bldmake bldfiles
這個(gè)命令會(huì)處理當(dāng)前目錄下的bld.inf文件,具體來說會(huì)執(zhí)行以下處理過程
(1)、生成目錄C:\Symbian\8.0a\S60_2nd_FP2_SC\epoc32\BUILD\SYMBIAN\8.0A\S60_2ND_FP2_SC\SERIES60EX\HELLOWORLDBASIC
(2)、在這個(gè)目錄下,生成一系列的Make文件,針對(duì)各種目標(biāo)環(huán)境。比如VC7.MAKE,CW_IDE.MAKE等等。
(3)、在當(dāng)前目錄下生成abld.bat文件,這個(gè)文件會(huì)在隨后用到。VS2003版本您可以查看該文件的內(nèi)容。但是建議不要手工的更改它的內(nèi)容。
Bldmake命令也支持其他的命令行選項(xiàng),您可以直接輸入bldmake來查看簡要的介紹,還可以查看SDK文檔了解詳細(xì)信息。
5、在命令行中輸入abld build wins
由bldmake處理bld.inf文件得到的abld.bat文件,使得abld命令可用。Abld.bat控制著構(gòu)建一個(gè)項(xiàng)目的方方面面。Abld命令的語法非常地靈活,它擁有許多命令行選項(xiàng),它們的組合涵蓋了各種構(gòu)建需求。
注意:這里如果你被提示缺少了一個(gè)文件mspdb71.dll,那么可以通過如下方法解決:在Microsoft Visual Studio .NET 2003的安裝目錄下。你可以在\Common7\IDE這個(gè)目錄下找到這個(gè)文件。把他拷貝到\Vc7\bin下就可以了。再次提醒前面的環(huán)境變量要設(shè)置好,否則這里你還會(huì)因?yàn)槿鄙賚ink.exe而中止運(yùn)行。
6、在命令行中輸入:epoc
這時(shí)模擬器就會(huì)出現(xiàn)。如果你的環(huán)境都設(shè)置正確的話,那么模擬器中就會(huì)有你剛剛編譯的helloworld,它在模擬器上的名字是“HW”
五、檢查SDK和IDE是否兼容工作
1、重復(fù)上面的1-4
2、在命令行中輸入:makmake helloworldbasic vc7,這時(shí)會(huì)在group文件夾下生成一些文件,VS2003版本其中包含VS2003的工程文件HELLOWORLDBASIC.sln
3、打開VS2003,選擇“打開解決方案(Open Solution)”,打開HELLOWORLDBASIC.sln,然后進(jìn)行編譯、運(yùn)行,就會(huì)得到第四部分第6步中的效果。(運(yùn)行的時(shí)候可能需要選擇程序epoc.exe)