S60 platform construction-ZT

Source: Internet
Author: User

ZT: http://blog.csdn.net/dong_chi/archive/2009/11/18/4831699.aspx

 

S60 Platform Construction

 

2009-7

 

1. Determine your platform

 

First, you need to know what your platform is?

For s60 2nd or lower, you can use vc6 with SP3 or higher patches as IDE (integrated development environment), Visual Studio 2005/2003, or carbide C ++

S60 3rd only supports carbide C ++ and Visual Studio (carbide. vs must be installed)

 

I have tried the following combination

S60_2nd_fp2_ SC + vc6.0 SP6 and

S60_3rd_fp1 + carbide C + + 2.0 and

S60_3rd_fp1 + carbide. Vs + Visual Studio 2005 (this should not be successful because of frequent errors)

Of course, you can also build multiple platforms on the same machine, that is, Install Multiple sdks. However, this will cause many difficult problems. Therefore, we recommend that you only use a single platform.

 

Http://www.forum.nokia.com/info/sw.nokia.com/id/4a7149a5-95a5-4726-913a-3c6f21eb65a5/S60-SDK-0616-3.0-mr.html here you can download the above two s60 SDK

Http://www.forum.nokia.com/info/sw.nokia.com/id/dbb8841d-832c-43a6-be13-f78119a2b4cb.html here you can download carbide C ++ 2.0

Http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/IDEs/Carbide.vs/ download here carbide.

 

Ii. Preparation of tools:

 

After determining the platform, prepare various software, respectively (below is the version I used. If you use a lower version, you may have errors. Try to use a higher version ):

 

<! -- [If! Supportlists] --> 1. <! -- [Endif] --> for the s60_2nd_fp2_ SC + vc6.0 SP6 platform:

ActivePerl-5.6.1.635-MSWin32-x86.msi

Jdk-1_5_0_03-windows-i586-p.exe

S60_2nd_fp2_sdk_ms_chinese

Vc6.0 SP6 (at least SP3)

 

<! -- [If! Supportlists] --> 2. <! -- [Endif] --> for s60_3rd_fp1 + carbide C ++ 2.0 platform:

ActivePerl-5.6.1.635-MSWin32-x86.msi

Jdk-1_5_0_03-windows-i586-p.exe

S60_3rd_fp1

Carbide C ++ 2.0 (at least 1.2)

 

I recommend 3rd SDK. Currently, 3rd_fp2 and 5th sdks are available. If you are interested, please study them. :

Http://www.forum.nokia.com/info/sw.nokia.com/id/ec866fab-4b76-49f6-b5a5-af0631419e9c/S60_All_in_One_SDKs.html

 

 

About expansion package

In addition, in order to enhance the SDK capabilities, it is recommended to download the extension package, such as the project funambol needs to be syncmlclientapi in a variety of API functions, must download S60_3rd_Ed_SDK_FP1_API_Plug-In_Pack how to use later part of the third introduction.

Http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/Plug-ins/Extensions/ here there are a variety of extension packages available for download, please choose an extension package that fits your SDK.

 

About version

As for the use of other versions of each tool, I do not know whether the final success will be successful, because this version is also a big problem, and many errors are caused by version mismatch, therefore, when selecting a version, try to use a higher version. The above is only for reference.

Note: All tools must be in English.

 

Download various tools

About tool resources recommended Nokia Forum http://www.forum.nokia.com/here can be downloaded to a lot of free software, need to be reminded that it needs you to register a forum account, very simple. However, it seems that you can download it even if you do not register and use thunder. Click to download

<! -- [If! VML] --> <! -- [Endif] -->

In this case, the address bar appears.

<! -- [If! VML] --> <! -- [Endif] -->

Copy the address and use thunder to create a task. The simplest is to right-click to use thunder to download.

 

 

Iii. Installation Process and precautions

 

During installation, it is best to follow the order shown above! It should also be installed in the default path, that is, all tools are on the C drive. do not modify the installation path. If you really don't want to install it in C, others say: at least make sure it is all under a drive letter! I have never tried this. If you are interested, try it! During installation, some tools provide the Version options. Generally, select the OEM version.

Again: It must be installed on the same drive letter !! Otherwise, there will be many inexplicable problems, and the SDK installation path cannot contain spaces !!! Refer to the default path

Please avoid repeated installation. Try to install OK once!

About installing the extension package

I did this. decompress the first archive and get a lot of packages. It is the API of different applications. Select the one you need, for example, find the syncmlclientapi required for this project, decompress it, and put it under/EPOC/include under the SDK root directory.

You can include this path in a specific project (such as modifying the MMP _file in the group directory of a specific project ).

<! -- [If! VML] --> <! -- [Endif] -->

Systeminclude is the system path.

Userinclude is the user path

 

Iv. Configuration

After all the tools are installed, the specific configuration is completed. If you have a good character, you do not need to do anything. compile your first Symbian program directly in the next part. But goddess of luck does not seem to like me.

After the preceding tools are installed, open the command line and enter EPOC to check whether the installation is successful. If a simulator is displayed, the installation is successful. Skip this section for Lucky Gar. If no, it is likely to be a problem with environment variables.

 

Under a single platform:

1. s60 2nd + vc6

 

The single platform is mainly about environment variables, which is hard to say and I don't know much about either. I encountered two situations myself: I can use all the tools on the computer in the dormitory after installation, no problem; however, in the lab, we encountered the epocroot environment variable must be capital problem, which means that epocroot must be in uppercase, but it must be in uppercase! I haven't figured it out yet! Finally, I referred to the path of the system environment variable of the dormitory computer, and added some unused ones. Finally, the problem was solved!

Therefore, if you encounter the same problem or the simulator cannot be started, you can refer to the environment variables I provided below, which is not guaranteed to be fully effective.

System Environment Variable Path = C:/program files/common files/Symbian/tools; C:/program files/CSL arm toolchain/bin; C:/perl/bin; % SystemRoot %/system32; % SystemRoot %/system32/WBEM; C:/program files/Java/jdk1.5.0 _ 05/bin; do not reduce it !! The black part may be the cause. check whether this part of your environment variable exists or is missing.

Add User environment variables (or system variables ):

You can manually add a user or system environment variable epocroot =/Symbian/8.0a/s60_2nd_fp2_ SC (if it is s60_3nd_fp1, change it as needed). Note that there is no drive letter and a backslash/end is required! Otherwise, an error is reported. (That is, the directory where your SDK is located)

 

<! -- [If! Supportlists] --> 2. <! -- [Endif] --> Use s60 3rd + carbide C ++

 

First, set the environment variable of winscw (because 3rd does not support wins compilation, only the winscw compiler is supported, and thus does not support Vc, operations such as (START-> Program-> Carbide-> Configure environment ......), If you think you will never use the command line, you can also choose not to set it, because this setting is only valid when you use the winscw command in the command line.

<! -- [If! VML] --> <! -- [Endif] -->

The environment settings in carbide are for a specific project. For more information, see section 5.

If other problems occur, refer to the following environment variable settings.

Path =

C:/program files/common files/Symbian/tools; D:/perl/bin/; C:/program files/Nokia/carbide. c ++ V2.0/x86build/symbian_tools/command_line_tools; C:/perl/bin; C:/Windows/system32; C:/windows; C:/Windows/system32/WBEM; c:/program files/Java/jdk1.5.0 _ 05/bin; C:/program files/Microsoft SQL Server/90/tools/binn/; C: /program files/CSL arm toolchain/bin;

If the following error occurs: Warning: epocroot does not specizes an existing Directory

Epocroot =

/Symbian/9.2/s60_3rd_fp1/

 

Temp = TMP =

C:/temp

 

5. Compile and run your helloworld

 

Single Platform

<! -- [If! Supportlists] --> I. <! -- [Endif] --> s60_2nd compile the helloworldbasic process (s60_3rd is used, and s60_2nd is similar to it)

A. Compile with command line

<! -- [If! Supportlists] --> 1. <! -- [Endif] --> Start command line

<! -- [If! Supportlists] --> 2. <! -- [Endif] --> Input

Cd c:/Symbian/8.0a/s60_2nd_fp2_ SC/series60ex/helloworldbasic/group (the Group directory of helloworldbasic)

<! -- [If! VML] --> <! -- [Endif] -->

<! -- [If! Supportlists] --> 3. <! -- [Endif] --> enter the command bldmake bldfiles

<! -- [If! VML] --> <! -- [Endif] -->

Generate an abld. BAT file. This file has various engineering information required for compilation.

4. Run the internal SDK command to compile the SDK. Enter abld build wins udeb.

<! -- [If! VML] --> <! -- [Endif] -->

<! -- [If! Supportlists] --> 5, <! -- [Endif] --> enter the EPOC in the command line to call the simulator.

 

B. Compile with vc6

<! -- [If! Supportlists] --> 1. <! -- [Endif] --> Start command line

<! -- [If! Supportlists] --> 2. <! -- [Endif] --> Cd C:/Symbian/8.0a/s60_2nd_fp2_ SC/series60ex/helloworldbasic/group

<! -- [If! VML] --> <! -- [Endif] -->

<! -- [If! Supportlists] --> 3. <! -- [Endif] --> enter the command bldmake bldfiles

<! -- [If! VML] --> <! -- [Endif] -->

Generate an abld. BAT file. This file has various engineering information required for compilation.

<! -- [If! Supportlists] --> 4, <! -- [Endif] --> enter abld makefile vc6

C:/Symbian/8.0a/s60_2nd_fp2_ SC/epoc32/build/series60ex/helloworldbasic/group/helloworldbasic/wins generate the VC project file helloworldbasic. DSW

<! -- [If! VML] --> <! -- [Endif] -->

 

5. In this case, you can use vc6.0 to open the project. The method is the same as that of a General VC project. during compilation and execution, the system prompts you to enter the executable file path and enter

C:/Symbian/8.0a/s60_2nd_fp2_ SC/epoc32/release/wins/udeb/epoc.exe

 

<! -- [If! Supportlists] --> II. <! -- [Endif] --> s60_3rd compilation helloworldbasic Process

 

<! -- [If! Supportlists] --> A, <! -- [Endif] --> compile with command line

1. Start command line

2. Input

Cd c:/Symbian/9.2/s60_3rd_fp1_5/s60ex/helloworldbasic/group (the Group directory of helloworldbasic)

<! -- [If! VML] --> <! -- [Endif] -->

3. Enter the bldmake bldfiles command.

<! -- [If! VML] --> <! -- [Endif] -->

Generate an abld. BAT file. This file has various engineering information required for compilation.

<! -- [If! Supportlists] --> 5, <! -- [Endif] --> run the SDK internal command to compile the code. Enter abld build winscw udeb. Note that the black part is different from that of s60 2nd.

<! -- [If! VML] --> <! -- [Endif] -->

<! -- [If! Supportlists] --> 6. <! -- [Endif] --> enter the EPOC in the command line to call the simulator.

 

<! -- [If! Supportlists] --> B, <! -- [Endif] --> Use carbide C ++ to compile

<! -- [If! Supportlists] --> 1. <! -- [Endif] --> open carbide C ++, select the default workplace path, and close the welcome page.

<! -- [If! Supportlists] --> 2. <! -- [Endif] --> In the left-side project explorer, right-click (or file menu), select import, and then select the import. inf file option.

<! -- [If! VML] --> <! -- [Endif] -->

<! -- [If! Supportlists] --> 3. <! -- [Endif] --> next: Enter the INF path. Here, enter the INF path of helloworkbasic.

<! -- [If! VML] --> <! -- [Endif] -->

<! -- [If! Supportlists] --> 4, <! -- [Endif] --> next, select generate settings (here s60 3rd_fp1 winscw is selected, you can also select all)

<! -- [If! VML] --> <! -- [Endif] -->

 

<! -- [If! Supportlists] --> 4, <! -- [Endif] --> next OK!

<! -- [If! Supportlists] --> 5, <! -- [Endif] --> build and run, OK!

 

 

6. Next we will introduce how to build dual platforms. Not recommended

This is a lot of the same as a single platform. Here I will only talk about different places.

After installing various tools, there are three major tasks.

<! -- [If! Supportlists] --> 1. <! -- [Endif] --> set Environment Variables

<! -- [If! Supportlists] --> 2. <! -- [Endif] --> set a Virtual Disk

<! -- [If! Supportlists] --> 3. <! -- [Endif] --> set the default SDK

 

Set Environment Variables

Environment variables are mainly set to change epocroot to a backslash/to indicate the root directory, which can be set to user variables or system variables.

Here I will provide another value for my system variable path.

C:/program files/Nokia/carbide. c ++ V2.0/x86build/symbian_tools/command_line_tools; C:/program files/common files/Symbian/tools; C:/program files/CSL arm toolchain/bin; C: /perl/bin; % SystemRoot %/system32; % SystemRoot %/system32/WBEM; C:/program files/Java/jdk1.5.0 _ 05/bin;

Do not forget to set environment variables related to winscw. For details, refer to section 4-> single platform-> 2.

The settings in carbide are based on specific projects. Go to project => property => carvide. c ++ => carbide build configuration => Environment

Change epocroot to/, and then switch to the ROM builder tab to set the working directory as the path under the virtual drive letter of the SDK you are using. For example, if the SDK you are using is in the Virtual Disk y, change it to a path under Y:

 

Set Virtual Disks

Then write a. BAT file, as shown below:

Subst t: C:/Symbian/8.0a/s60_2nd_fp2_ SC

Subst y: C:/Symbian/9.2/s60_3rd_fp1_4

Devices-setdefault @ s60_3rd_fp1_4: COM. Nokia. s60

It means to set the Virtual Disk t/W/y, corresponding to the corresponding directory, and then set s60_3rd_fp1_4: COM. Nokia. s60 to the default SDK. Note that the device name here may be different from that on your computer. Check which devices (sdks) You have installed and enter devices in the command line.

<! -- [If! VML] --> <! -- [Endif] -->

Enter the complete device name when setting the default SDK.

 

I also wrote two. BAT files for convenience.

Set_s60_2nd_fp2_default.bat

Devices-setdefault @ s60_2nd_fp2_ SC: COM. Nokia. series60

And set_s60_3rd_fp1_default.bat

Devices-setdefault @ s60_3rd_fp1_4: COM. Nokia. s60

This allows you to easily switch between different sdks.

 

The current default SDK is used for compiling each time. Therefore, you should switch the SDK together with setting the default SDK to determine which default SDK you are currently using.

 

Note: Of course, you can not set a virtual disk, but you must modify the environment variable epocroot every time to meet your current SDK (for example, if you use 3rd, It is/Symbian/9.2/s60_3rd_fp1 /; 2nd is/Symbian/8.0a/s60_2nd_fp2_ SC/, etc.), and modify the default SDK

 

Steps for compiling multiple sdks:

A. Compile the command line

1. Set the default device (if the virtual disk is not used, set the environment variable epocroot)

2. Enter the correct path (Group)

3. bldmake bldfiles

4. abld build winscw udeb (3rd is abld build wins udeb if 2nd)

5. EPOC

 

B. Compile with Carbide

It is similar to a single platform. The difference is that you need to set the project after opening it. Select the project you want to compile and perform the following settings.

The settings in carbide are based on specific projects. Go to project => property => carvide. c ++ => carbide build configuration => Environment

If you open a project from a virtual disk, change epocroot to/, and then switch to the ROM builder tab to set the working directory to the path under the virtual drive letter of the SDK you are using. For example, if the SDK you are using is in the Virtual Disk y, change it to a path under Y.

If you open a project from a physical disk such as C:, change epocroot to the directory where your SDK is located, as shown in figure

/Symbian/9.2/s60_3rd_fp1/and Rom build are also modified to ensure the same drive letter.

 

 

VII. sum up some errors

1. epocroot environment variable must be capital, which means epocroot must be capitalized.

Solution: view the path system environment variable:

Path = C:/program files/common files/Symbian/tools; C:/program files/CSL arm toolchain/bin; C:/perl/bin; % SystemRoot %/system32; % SystemRoot %; % SystemRoot %/system32/WBEM; C:/program files/Java/jdk1.5.0 _ 05/bin; black part

 

2. Can't CD:

<! -- [If! VML] --> <! -- [Endif] -->

 

Solution:

Because the abld created before the virtual drive letter is not set is used. the root directory of the BAT file points to C:. Therefore, when the virtual drive letter T: is set, the previously generated file should be cleared. bat re-bldmake bldfiles to generate a new abld that meets the settings. BAT file. As follows:

<! -- [If! VML] --> <! -- [Endif] -->

The essence of this problem is epocroot settings and abld. the path information described in the BAT file conflicts. Check whether your default device meets the requirements and check whether your epocroot settings match the current SDK. If both your default SDK and epocroot are correct, use the bldmake bldfiles command again to regenerate the albd. BAT file.

Some old test programs that are no longer used should be cleared using bldmake clean, or right-click the project using carbide and select project clean to clear the project.

 

In general, the project information must comply with the system setting information, especially the path. When one of them changes, the Appeal command should be re-executed so that the compilation can be true.

 

3. Sometimes the simulator cannot die after the EPOC command is entered after compilation.

Solution:

Modify the user environment variables as follows:

Temp = C:/temp

TMP = C:/temp

 

4. Use bldmake bldfiles. If link. EXE is not an internal or external command, it is not an executable file or a batch file.

Solution:

Add the path of link. EXE to the path of the system environment variable. Link. EXE is in C: progrm file/Microsoft Visual Studio/vc98/bin. If you cannot connect to mspdb60.dll, add the path to the path in C: progrm file/Microsoft Visual Studio/common/msdev98/bin.

 

5. unsupported ...... Wins

Solution:

Use abld build winscw udeb instead of abld build wins udeb

Add Path = C:/program files/CSL arm toolchain/bin;

 

6. The simulator cannot be started. The startup is disabled after completion.

Solution:

I am not clear about the specific cause. It is estimated that there is a conflict with other applications, because when I run it with the administrator user, it can be started, it can be seen that the simulator can run after obtaining higher permissions and more resources, so it is clear that restarting can solve the problem.

 

7. If an error occurs when using carbide C ++ to compile helloworldbasic, it cannot be seen.

<! -- [If! VML] --> <! -- [Endif] -->

 

Solution: It is found that compiling all the examples is like this, but if it is a project created using carbide, there will be no errors.

However, using the command abld build winscw udeb in the command line will not cause errors. It is estimated that the epocroot setting in carbide is incorrect. It may be that C: is used as the root directory.

<! -- [If! VML] --> <! -- [Endif] -->

 

Go to project => property => carvide. c ++ => carbide build configuration => Environment

Change epocroot/

Problem:

<! -- [If! VML] --> <! -- [Endif] -->

Creation Time description resource path location type

1248081189140 error: Unable to open file for reading! /Epoc32/winscw/C/system/temp/s2mg. tmp/... _ gfx_qgn_menu_aknexeditor.svgb editor unknown C/C ++ Problem

 

Set the environment variable back to the original value/Symbian/9.2/s60_3rd_fp1_4/. If the environment variable is not imported from the virtual disk, it is directly imported from C:, compiled, and executed smoothly.

Therefore, the error above is estimated that the workplace and project are not in the same drive letter (because a virtual directory is set), and the workplace is in C:/Symbian/carbide/workspace, I set C:/Symbian/9.2/s60_3rd_fp1_4 to Y: disk.

To verify my conjecture, select another program Y:/s60ex/chat/group.

First, set the environment variable to epocroot =/

<! -- [If! VML] --> <! -- [Endif] -->

Set working directory

<! -- [If! VML] --> <! -- [Endif] --> compilation and execution. Successful !!!

In summary, everything should be under a drive letter. If you have set a virtual drive letter, you should also set the working directory in the work interval to the drive letter of the project you introduced !!!

The most depressing thing is that this setting should be done in every project !!

 

 

In general, there are four types of problems: tool installation, environment variable setting, and project setting.

All tools must be installed on the same disk. The default path is recommended.

For environment variables, remember that the epocroot value indicates the root directory of the current default SDK. You must set it according to the directory where your SDK (which must be set as the default device) is located, and the virtual drive letter and the physical drive letter should be treated differently. The paths of various tools should also be correctly added to the system path.

For project settings, various project information must be stored in the same drive letter, and the project information description must comply with the settings of the current environment (including epocroot, default device, and working directory)

 

Since we only have a week of contact with Symbian, it is not very clear in many places. Writing this stuff may also be a bit dazzling.

Please forgive me for any errors or limitations!

Thank you for your correction !!

This article from the csdn blog, reproduced please indicate the source: http://blog.csdn.net/dong_chi/archive/2009/11/18/4831699.aspx

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

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.