Debugging a Linker Build Error (Windows Embedded CE 6.0)

1/5/2010

The following procedure shows how to debug a linker build error, which is one of the most common build error types in Platform Builder.

To debug a linker build error

  1. In one of the public unfiltered module definition (.def) files, find the missing symbol.

    The missing symbol is often in %_WINCEROOT%\Public\Common\Oak\Lib\%_TGTCPU%\<debuglevel>\Coredll.def.

    Do not examine .def files in cesysgen directories because these have already been filtered, based on your selected configuration.

  2. In the .def file, look for nested CESYSGEN filter directives.

    For example, the following code example is found in Coredll.def and shows that the function printf is included in your OS design if the environment variable COREDLL_COMPONENTS contains coresioa.

    ; @CESYSGEN IF COREDLL_CORESIOA
    ...
    printf @1102
    ...
    ; @CESYSGEN ENDIF
    
  3. Examine the Cesysgen.bat file for your operating system (OS) design to determine which Sysgen variable causes the appropriate environment variable to be set.

    The following code example shows that if the STDIOA Sysgen variable is set, it brings in coresioa.

    if "%SYSGEN_STDIOA%"=="1" set COREDLL_COMPONENTS=%COREDLL_COMPONENTS% coresioa
    
  4. Find the Catalog item that sets the Sysgen variable and then include it in your workspace.

    If you are using the IDE, perform a search of your Catalog item (.pbcxml) files to determine which Catalog item is associated with the Sysgen variable and then add the Catalog item to your OS design. For more information, see Adding an Item from the Catalog.

    If you are using a command-line build window, set the Sysgen variable directly in the Cesysgen.bat file.

You have successfully debugged a linker build error in your OS design. You can continue the run-time image building process.

See Also

Concepts

Build Error Debugging Process
Run-Time Image Build Process
Build System

Other Resources