Mobile Apps - Problems during building process

Asked By Steffen
19-Mar-07 05:55 AM
Hello,
I have some problems during my build process under Windows CE 5.0.

If I sysgen my platform in release build, the the build tool throws a lot of
warnings like:

BUILD: [01:0000000575:WARNN ] psmfsd.lib(FindFunc.obj) : warning LNK4099:
PDB 'psmfsd.pdb' was not found with 'psmfsd.lib' or at
'C:\WINCE500\platform\WELLINGTON\target\ARMV4I\debug\psmfsd.pdb'; linking
object as if no debug info


My question is now - Why its searching for .pdb in release? I think its only
for debug purpose? I analyst the problem and I found out the evil root in the
makefile.def (PUBLIC\COMMON\OAK\MISC) :

!IF "$(RESOURCEONLYDLL)" == "1"
DEBUG_LINK_CMD_LINE=
!ELSEIF "$(WINCEPROFILE)" == "1"
DEBUG_LINK_CMD_LINE=-debug -debugtype:both -incremental:no
CDEBUG_DEFINES=$(CDEBUG_DEFINES) -DWINCEPROFILE
!ELSE
DEBUG_LINK_CMD_LINE=-debug -debugtype:both -incremental:no
!ENDIF

This means that the linking process is always done as debug linking! But why?

I hope somebody can help me, about 60Warnings are very annoying :)

Thanks Steffen
DEBUG_LINK_CMD_LINE
(1)
CDEBUG_DEFINES
(1)
RESOURCEONLYDLL
(1)
WINCEDEBUG
(1)
PDB
(1)
LDEFINES
(1)
DWINCEPROFILE
(1)
WINCEPROFILE
(1)
  Andrew at Plextek (www.plextek.co.uk) replied...
19-Mar-07 10:09 AM
Put the following in your "sources.cmn" file:

LDEFINES= $(LDEFINES) -ignore:4099

It should stop the warnings from being displayed.

Andrew.
  Steffen replied...
19-Mar-07 10:24 AM
Hello Andrew,

Thanks for your answer, but my general question was why is standard option
debug link?
  Silver replied...
19-Mar-07 06:00 PM
You know those times when you get a bug that is not reproducible in a
non-debug build?
You can debug a release build if you want to. A PDB contains the symbols to
help you do that.  A  WINCEDEBUG=debug build does not produce optimized code
whereas a WINCEDEBUG=retail / release build does so code behaviour can be
very different between the two.

Geoff
--
  Andrew at Plextek (www.plextek.co.uk) replied...
20-Mar-07 05:03 AM
I suspect (but do not know) that all a debug link does is to preserve
any symbolic debug information from the object files or libraries and
create a PDB file for the final linked item. The fact that we humans
consider as a DEBUG or RETAIL build is fairly irrelevent.

Certainly it is a useful feature. For example you can build a retail
version of a driver and link it with a debug build of the OS, for
testing a driver  build and you can still gain access to all of the
symbolic information in the release build driver. If the linker lost
this information then it wouldn't be possible to do this.

Regards,
Andrew.

On Mar 19, 3:24 pm, Steffen.K <Steff...@>
  Steffen replied...
20-Mar-07 08:17 AM
Okay I think I understand now!

Thanks to Silver and Andrew!

Steffen
help