
Originally Posted by
wirefree101
The book suggests the following about saving the code:
"The zip should be extracted to the root of the relevant SDK - this will create a directory called \EMCCSoft which will contain the examples in a flat structure. Note that, in order for the relevant paths used in the creation of the .sis files to work, the zip must be extracted to the root of the SDK."
Also, in a lot of examples in the book, paths are often referenced as:
"\Symbian\8.0a\series60\EMCCSoft\HelloWorld\group"
The "root of the relevant SDK", aka. %EPOCROOT%, has in a default installation 3 path components, e.g. "\Symbian\8.0a\S60_3rd_MR\" however it is unlikely that you actually have a folder called "series60" thus this must be a generic component used to make abstraction of the particular SDK you might be using.
So, for the S60 2nd SDK FP3 for CodeWarrior the example application are to be installed under \Symbian\8.0a\S60_2nd_FP2_CW\ thus their path becoming \Symbian\8.0a\S60_2nd_FP2_CW\EMCCSoft\...
Also, when reading any path references from the book make sure make the proper translation.
Now, for the HelloWorldCon you need to look at the EMCCSoft\HelloWorldCon\group\HelloWorldCon.mmp, particularly the following line defining the USERINCLUDE paths
Code:
USERINCLUDE ..\..\..\Epoc32ex\Basics\CommonFramework
Parse this path having the file location as start point and you will see that the book assumes that a directory called Epoc32ex is available in SDK's root (or in the parent directory of \EMCCSoft). There is no such directory in the S60 SDKs, we call it \Examples 
So modify this line to look like this:
Code:
USERINCLUDE ..\..\..\Examples\Basics\CommonFramework
and now the project can be compiled (assuming the examples are installed in the SDK root otherwise this USERINCLUDE statement does not evaluate to a valid path).