×

Discussion Board

Page 1 of 2 12 LastLast
Results 1 to 15 of 17
  1. #1
    Regular Contributor
    Join Date
    Aug 2005
    Posts
    200

    ERROR: EPOCROOT must be an absolute path, not containing a drive letter.

    Hi,

    I get this error at two places:

    1) When I execute bldmake bldfiles in command prompt
    2) When I import *.mmp into Carbide.c++

    I have looked through suggestions on this forum such as modify the devices.xml, remove 'C:' from env var, and also adding some extra vars as suggested here http://discussion.forum.nokia.com/fo...ad.php?t=76813.

    Would appreciate advise from a user who has been successful in solving the problem.


    cheers,
    wirefree101

  2. #2
    Registered User
    Join Date
    Jul 2006
    Posts
    11

    Re: ERROR: EPOCROOT must be an absolute path, not containing a drive letter.

    Hi

    - normally we set EPOCROOT as \bin\techview\ as environment vaiable.
    (path before epoc32)
    - if you again face problem then just substitute a saperate drive (e.g subst p) and also update you devices.xml file for this drive and set device as default

    cheers
    arun

  3. #3
    Regular Contributor
    Join Date
    Aug 2005
    Posts
    200

    Re: ERROR: EPOCROOT must be an absolute path, not containing a drive letter.

    Thx for the response Arun.

    Just to make sure I understood you correct...You are saying:

    1) Change my current environment var setting for EPOCROOT
    from C:\Symbian\9.1\S60_3rd
    to \bin\techview\

    Did I get that right?

    2) If I still get the error, I should change
    from C:\Symbian\9.1\S60_3rd
    to P:\Symbian\9.1\S60_3rd

    Did I get this correct? (but I don't have a P: drive!?)

    Lk fwd 2 ur rspnse.


    cheers,
    wirefree101

  4. #4
    Nokia Developer Moderator
    Join Date
    Feb 2006
    Location
    Oslo, Norway
    Posts
    28,674

    Re: ERROR: EPOCROOT must be an absolute path, not containing a drive letter.

    Quote Originally Posted by wirefree101
    (but I don't have a P: drive!?)
    Subst is a command originating from DOS-times, it shows a directory as a drive. Check Windows Help for details.
    However this "bring epoc32 to the root" approach is not likely going to solve your problem.
    My guess: you have tried to place Carbide workspace directory to an other drive than the SDK resides on. Since Symbian SDK-s do not like drive letters, projects/workspaces and the SDK should reside on the same drive.

  5. #5
    Regular Contributor
    Join Date
    Aug 2005
    Posts
    200

    Re: ERROR: EPOCROOT must be an absolute path, not containing a drive letter.

    @Wizard-hu:

    Both the workspace as well as the SDK reside on C:

    I also had question #1 above? Wud appreciate response to that too...

    cheers,
    wirefree101

  6. #6
    Regular Contributor
    Join Date
    Aug 2005
    Posts
    200

    Re: ERROR: EPOCROOT must be an absolute path, not containing a drive letter.

    I have been successful with getting over the 'drive letter' problem. However, yet another EPOCROOT problem has come up...But b4 I get into this, I am quoting a line out of a Symbian Press release publication:

    "In Symbian OS 7.0s, the approach to configuring multiple SDKs was modified. So, for Series 60 2.x Platforms the selection of a specifc SDK is done via the 'devices' command. The environment variable EPOCROOT no longer needs to be set..."

    The # of EPOCROOT-related errors I have had come up is strange considering the statement above...to name a few:

    - EPOCROOT must be capitalized
    - EPOCROOT must not contain a drive letter
    - EPOCROOT must contain a backslash at the end
    - EPOCROOT must specify an existing directory

    The last one mentioned above is confusing as all the values for EPOCROOT under user & system variables are valid...I have the following values:

    \Symbian\8.0a\S60_2nd_FP2_CW\
    \Symbian\8.1a\S60_2nd_FP3\
    \Symbian\9.1\S60_3rd\

    Pls advise...

    Thx,
    wirefree101

  7. #7
    Registered User
    Join Date
    Jul 2005
    Location
    Bengaluru, India
    Posts
    747

    Re: ERROR: EPOCROOT must be an absolute path, not containing a drive letter.

    Quote Originally Posted by wirefree101
    ...
    "In Symbian OS 7.0s, the approach to configuring multiple SDKs was modified. So, for Series 60 2.x Platforms the selection of a specific SDK is done via the 'devices' command. The environment variable EPOCROOT no longer needs to be set..."
    You are right! There is no need of a EPOCROOT environment variable at all. Some where I read that you can keep it as "/". But my personal suggestion is that variable is not at all required as you are not supposed to use the 1.2 (Symbian OS 6.1) based SDK.

    Quote Originally Posted by wirefree101
    The # of EPOCROOT-related errors I have had come up is strange considering the statement above...to name a few:

    - EPOCROOT must be capitalized
    - EPOCROOT must not contain a drive letter
    - EPOCROOT must contain a backslash at the end
    - EPOCROOT must specify an existing directory

    The last one mentioned above is confusing as all the values for EPOCROOT under user & system variables are valid...I have the following values:

    \Symbian\8.0a\S60_2nd_FP2_CW\
    \Symbian\8.1a\S60_2nd_FP3\
    \Symbian\9.1\S60_3rd\
    Basically all these errors are generating by the Perl, which in turn is compulsory for the Tool-Chain to work properly. I hope all these errors would be removed if you remove the EPOCROOT environment variable.

  8. #8
    Nokia Developer Moderator
    Join Date
    Sep 2004
    Location
    Tampere, Finland
    Posts
    11,359

    Re: ERROR: EPOCROOT must be an absolute path, not containing a drive letter.

    The SDK tools can make use of a properly set EPOCROOT variable but as said above it is not needed. Remove it completely and then make sure that one of the SDKs is set as default.

    E.g.
    Calling

    c:\> devices.exe <Enter>

    will list something like:

    some_sdk_id:com.nokia.series60
    some_other_sdk_id:com.nokia.series60
    ...

    if none of these SDK identifiers listed ends with “- default” then you need to call

    c:\> devices.exe -setdefault @some_sdk_id:com.nokia.series60 <Enter>

    thus making that SDK the default one until explicitly changed. A subsequent call to

    c:\> devices.exe <Enter>

    will list something like:

    some_sdk_id:com.nokia.series60 - default
    some_other_sdk_id:com.nokia.series60
    ...

    If EPOCROOT is set it must have the path set for the SDK you want to use, like EPOCROOT=\Symbian\9.1\S60_3rd\ (btw. you should be using the MR version of the SDK by now). You can only have one variable pointing to one SDK. You should also create it in the USER section of the system variables.
    EPOCROOT=\ is used in customized environments when the SDK is installed on a substed drive with the epoc32 directory in drive's root.

  9. #9
    Regular Contributor
    Join Date
    Aug 2005
    Posts
    200

    Re: ERROR: EPOCROOT must be an absolute path, not containing a drive letter.

    Thx! I have removed EPOCROOT altogether from my Env Var list and both bldmake & makesis have been successful.

    However, now that I have the attention of an expert, I hve three questions I wanna ask:

    1) I am following "Developing Series 60 Applications" by Leigh Edwards (EMCCSoft). The sample code that comes with it is for SDK2.x. As you suggested using the MR release, do you suppose I could compile&run that code in SDK3.x?

    2) The sample code that came along with the book came in a setup.exe file format which ultimately deposits all examples (HelloWorld, etc) in a folder called 'Documents'. The setup.exe also creates a 'Registry' & 'Tools' folder. Somewhere in the fine print it mentions that these folders should be installed within the SDK root folder which I overlooked & now am unable to reinstall. Even though I have been able to successfully make&run HelloWorld by simply copy&pasting the 'Documents' folder in SDK root, do you suppose their fineprinted condition is mandatory?

    3) The book was published in 2004 & uses CodeWarrior as a reference IDE. Even though it recommends CW2.8 (unavailable now), I have been able to use CW3.1 successfully. Would the same code build&run in Carbide.c++?

    Thx in advance!

    cheers,
    wirefree101

  10. #10
    Nokia Developer Moderator
    Join Date
    Sep 2004
    Location
    Tampere, Finland
    Posts
    11,359

    Re: ERROR: EPOCROOT must be an absolute path, not containing a drive letter.

    1) I was suggesting the S60 3rd SDK MR as a replacement for the S60 3rd SDK that you seem to have installed. When it comes to answering the "Which SDK should I use?" question please see this post. S60 2nd Edition specific code can be ported easily to S60 3rd Edition but it is probably not the most suitable task for a Symbian beginner. You should probably follow the book and to make it easier use the same SDK.

    2) The tools chain can handle any project location provided that:
    • the project files are on the same drive where the SDK is installed
    • there are no spaces in the path components


    I for example have all the SDKs installed in the default path (C:\Symbian\....) and all the projects in a dedicated directory (C:\MyProjects\...). But there is no difference between compiling a project who's bld.inf file is under C:\MyProjects\Project1\group\ and one whose bld.inf is under c:\Symbian\8.1a\S60_2nd_FP3\Series60Ex\form\group\

    I am not familiar with the book and its example projects setup. Unless they are providing some customized build scripts with hard-code paths there is no reason for you not to move one project (or all) to more convenient locations. Or you can keep the projects where installed now but be careful when interpreting any path relative indications that the book may contain.

    3) CodeWarior 3.1 (3.1.1 if you plan to use on TRK for on device debugging) is the latest version of the CodeWarrior IDE and there would be no problem using it instead of the 2.8 version. There might be some changes e.g. in the MMP import plug-in but the overall workflow is the same as before.

    Carbide.c++ [Expres|Dev|Pro] is yet another IDE that can be used and also Microsoft's Visual Studio 2003, with the dedicated Carbide.vs plug-in.

    IDE's job is to make you programming life easier and as you can see for S60 there are plenty for you to chose from. They all use (almost) the same SDKs and have the same compilers behind them. There would be no need for any change in the source code in order for you to build your projects however the workflow may differ in some stages and each environment has both gains and loses when compared with the others.

    Of course you can always use Notepad for an editor and the command line tools for the builds, the "least common denominator" for all the above mentioned IDEs

    Best regards,

  11. #11
    Regular Contributor
    Join Date
    Aug 2005
    Posts
    200

    Re: ERROR: EPOCROOT must be an absolute path, not containing a drive letter.

    Do appreciate the reply, ltomuta.

    It seems, however, compatibility-related issues continue to be generated. Latest in the series occurs when I attempt to build&run a console application - HelloWorldCon. The following error is received:

    "Error: the file 'CommonFramework.h' cannot be opened"

    Would appreciate pointers here.

    cheers,
    wirefree101

  12. #12
    Nokia Developer Moderator
    Join Date
    Feb 2006
    Location
    Oslo, Norway
    Posts
    28,674

    Re: ERROR: EPOCROOT must be an absolute path, not containing a drive letter.

    CommonFramework.h is a .exe skeleton creating a Cleanup Stack and calling DoExampleL or something. It is located in the Examples\CommonFramework folder, and referred by many of its neighboring examples (you can find
    USERINCLUDE ..\CommonFramework
    in them). So you have probably copied an example to another location, where it is likely not able to find Commonframework.h in "..\CommonFramework".
    Solution1: copy the CommonFramework directory next to the example you are experimenting with.
    Solution2: copy CommonFramework.h directly into the example you are experimenting with (in this case you can remove the ..\CommonFramework reference from the .mmp)

  13. #13
    Regular Contributor
    Join Date
    Aug 2005
    Posts
    200

    Re: ERROR: EPOCROOT must be an absolute path, not containing a drive letter.

    Thx wizard_hu.

    You're dead right about the directory location muck-up as I am getting the following error on yet another sample project:

    "Could not find or load the file "SHAPELISTMANAGER.LIB" for target device"


    Here's a bit on my particular situation:

    I am referencing "Developing Series 60 Applications" by Leigh Edwards which came along with some sample code which can be downloaded from:

    http://www.forum.nokia.com/main/plat...s60/books.html

    (the link is titled "Example Applications for a Series 60 2.x SDK")


    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 <root-of-SDK>\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"

    Could anybody be in a position to guide me as to where & how I should download, extract, setup and, thereby, store all my examples.

    Look forward to a prompt response.

    Thx in advance,
    wirefree

  14. #14
    Nokia Developer Moderator
    Join Date
    Sep 2004
    Location
    Tampere, Finland
    Posts
    11,359

    Lightbulb Re: ERROR: EPOCROOT must be an absolute path, not containing a drive letter.

    Quote 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).

  15. #15
    Regular Contributor
    Join Date
    Aug 2005
    Posts
    200

    Re: ERROR: EPOCROOT must be an absolute path, not containing a drive letter.

    Your logic is impeccable. Unfortunately, its incorrect too.

    The only way to understand what a mess this sample code installation is, is to do it yourself. The zip is a <3mb file & takes a few seconds to downloand and another minute to install. Following is the link again:

    http://www.forum.nokia.com/main/plat...s60/books.html
    (the link is titled "Example Applications for a Series 60 2.x SDK")

    Hope you spare a couple of minutes as I am still unable to proceed.

    Thx in advance,
    wirefree

Similar Threads

  1. Is there any method to get applications full path & a drive letter?
    By antti.kauppila in forum Symbian Tools & SDKs
    Replies: 10
    Last Post: 2006-02-06, 13:55
  2. How to give absolute path in .mmp & what 0x21 error mean?
    By ramanathan1 in forum Symbian Tools & SDKs
    Replies: 1
    Last Post: 2004-09-03, 05:19
  3. target drive letter for SISPATCH
    By geran in forum Symbian Tools & SDKs
    Replies: 0
    Last Post: 2003-11-07, 13:00
  4. Replies: 2
    Last Post: 2002-06-26, 08:57

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
×