| 对于计算机编程,似乎从例程“Hello World!”起步已经成为传统。
2.1 环境配置
我用的vc++6.0和s60_sdk_v1.1, 其它版本的设置也差不错,这里仅供参考。 1,下载安装Perl v5.003_07或更新版本 2, 运行subst z: d:\symbian。这个命令将D盘下symbian文件夹模拟为Z盘 3, 下载安装sdk,直接都安装到Z盘。forum nokia提供S系列的下载 4, 安装完成后,检查系统环境变量。path 的值设为包含\epoc32\gcc\bin;\epoc32\tools;设成这样后项目都要放在在Z盘下编译 5, EPOCROOT 值设为 \. \是根目录的意思。也就是说Epoc32文件夹在根目录下(我前面将skd安装在了Z盘根目录 6, 在z盘新建文件夹porject,以后的项目都放在这里
2.2 文本版本的Hello World
1, 项目定义文件 一般将针对两种环境生成程序:
每种类型的生成都需要不同的项目文件。为了简化,可以将所有需要的信息放到一个一般性的项目定义文件中。然后针对一种或多种可能的生成环境,使用提供的工具将该文件翻译成生成文件或项目文件。项目定义文件具有扩展名".mmp"(它代表"makmake project").与项目HelloWorld对应的这个文件内容如下: // HelloWorld.mmp
TARGET HelloWorld.exe TARGETtYPE exe SOURCEPATH . UID 0 SOURCE HelloWorld.cpp USERINCLUDE . SYSTEMINCLUDE \epoc32\include LIBRARY euser.lib
2, 组件定义文件 Symbian OS生成工具还需要提交一个组件定义文件。这个文件的名字总是bld.inf,其中包含所有项目定义文件的列表,这些文件定义该组件。对HelloWorld来说,这个文件很简单: // bld.inf
PRJ_MMPFILES
HelloWorld.mmp
3, 程序代码 // hellotext.cpp
#include #include
LOCAL_D CConsoleBase* gConsole;
void MainL() { gConsole->Printf(_L("Hello Text")); }
void ConsoleMainL() { gConsole = Console::NewL(_L("Hello Text"), TSize(KConsFullScreen, KConsFullScreen)); CleanupStack::PushL(gConsole);
MainL();
User::After(5000000);
CleanupStack::PopAndDestroy(gConsole); }
GLDEF_C TInt E32Main() { __UHEAP_MARK; CTrapCleanup* cleanupStack = CTrapCleanup::New(); TRAPD(error, ConsoleMainL()); __ASSERT_ALWAYS(!error, User::Panic(_L("SCMP"), error)); delete cleanupStack; __UHEAP_MARKEND; return 0; }
4, 从命令行生成 4.1, 在HelloWorld文件夹下建立go.bat。内容只有一行 cmd,目的是直接cd到该目录 4.2, 输入bldmake bldfiles.bldmake不会提示任何信息,不过在HelloWorld文件夹下多了一个文件abld.bat,它用于驱动剩下的生成过程。还可以发现epoc32目录数下包含了一个新的目录\epoc32\build\project\helloworld,它包含许多生成的文件,均与生成工具支持的各种类型有关 4.3, 输入abld build wins udeb.关于abld工具详细的描述请参考Symbian OS sdk。
5, 运行 直接打开\epoc32\release\wins\udeb下helloworld.exe
Good luck! |