diff -r 000000000000 -r 89d6a7a84779 Symbian3/SDK/Source/GUID-6025A68F-625B-570A-87D7-2C11E66044D4.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/SDK/Source/GUID-6025A68F-625B-570A-87D7-2C11E66044D4.dita Thu Jan 21 18:18:20 2010 +0000 @@ -0,0 +1,86 @@ + + + + + +Build +FAQ +

This page gives some quick answers to problems and issues you may encounter +when building code.

+

Why do applications build to the Symbian Emulator's Z: drive?

+

The build tools were originally designed for building ROM-based applications, +and so assume that applications should be placed in the emulated ROM area +(i.e. epoc32\release\winscw\udeb\ or urel\). Third party +applications intended to loaded on disk are also built to this location, but +this doesn't mean they can only be installed in ROM or have any other impact +on them. (Note that your code should not assume that it will be installed +on any particular drive, as this is choice is best left to the user).

+

Why does abld makefile give a WARNING: Can't find following headers +in System Include Path message, even though I export the header(s) in my bld.inf?

+

You can specify that headers from your project should be copied into the +system headers directory, epoc32\include, by using a prj_exports statement +in the bld.inf file. The header is not actually copied +though until an abld export command, or a command +that calls this, such as abld build is executed. +The solution is to call abld export before abld +makefile.

+

What Symbian platform tools can I cause to be invoked through a project +file keywords?

+

The chief purpose of a project (.mmp) file is to specify +the source files and options to pass to the appropriate compiler toolchain +for the platform. In many cases though, you will want to create a number of +additional, Symbian platform-specific, support files as part of the project +build. You can invoke the tools to create such files by specifying a number +of project file keywords:

+ +

Of the other commonly used Symbian platform tools, the project file does +not specify keywords that invoke the:

+ +

Note though you can invoke these, and any other tools, through extension +makefiles.

+

What are edll.obj and eexe.obj?

+

The build process builds into each .exe file a small +object file, eexe.lib, which contains a small amount +of code to manage process startup. Similiarly, each DLL has an object file edll.lib built +into it.

+

Why does the build give a message diff: <file-path-and-name>: No +such file or directory?

+

This message appears when building a project's resource or multi-bitmap +file for the first time. It can be ignored.

+

Why do I get a LNK2001: unresolved external symbol __chkstk error?

+

The program exceeds the stack space available, e.g. by creating a large TBuf on +the stack. The solution is to reduce the use of stack space by using the heap +appropriately.

+

How can I change the libraries for a project open in an IDE?

+

To change a project's libraries, you should edit the .mmp file's library statement +as normal, and then regenerate the IDE workspace using abld +makefile.

+

Where are the .lib files for ARM debug builds?

+

The .lib files required for ARM debug builds are identical +to those for release builds, so the build tools use a single copy of the libs +in the urel directory.

+

Why do I get an error from petran when I build for ARM, when the WINS/WINSCW +build is fine?

+

petran is a tool that is invoked only at the final +stage of the build process for ARM targets. It will give an error if you build +a DLL that contains writeable static data. See Static +data for more information.

+
\ No newline at end of file