Author Topic: Problems with Crinkler ...  (Read 3662 times)

0 Members and 1 Guest are viewing this topic.

Offline slippy

  • Atari ST
  • ***
  • Posts: 172
  • Karma: 42
    • View Profile
Problems with Crinkler ...
« on: September 05, 2007 »
Hey dudes,

I ran into a problem with Crinkler 1.0a ... And I really dunno how to get it running atm.

I use Crinkler from within my VS2005 environment and when the build process reaches the linking part I get the following output:

Code: [Select]
2>Verknüpfen...
2>Crinkler 1.0a (Jan  7 2007) (c) 2005-2007 Aske Simon Christensen & Rune Stubbe
2>Ignoring unknown argument '/INCREMENTAL:NO'
2>Ignoring unknown argument '/MANIFEST:NO'
2>Ignoring unknown argument '/OPT:REF'
2>Ignoring unknown argument '/OPT:ICF'
2>Ignoring unknown argument '/OPT:NOWIN98'
2>Ignoring unknown argument '/LTCG'
2>Ignoring unknown argument '/MACHINE:X86'
2>Ignoring unknown argument '/NOLOGO'
2>Ignoring unknown argument '/ERRORREPORT:PROMPT'
2>Target: .\Crinkler\tiny_native_fc_player.exe
2>Subsystem type: CONSOLE
2>Compression mode: FAST
2>Hash size: 100 MB
2>Hash tries: 20
2>Order tries: 0
2>Transforms: NONE
2>Replace DLLs: NONE
2>Range DLLs: NONE
2>loading:
2>  dsound.lib  kernel32.lib  user32.lib  gdi32.lib
2>  winspool.lib  comdlg32.lib  advapi32.lib  shell32.lib
2>  ole32.lib  oleaut32.lib  uuid.lib  odbc32.lib
2>  odbccp32.lib  ..\tiny_native_fc\crinkler\tiny_native_fc.lib  ..\release\tiny_native_fc.lib  .\Crinkler\tiny_native_fc_player.obj
2> : fatal error: LNK   0: failed to load file 'd:\coding\tiny_fc_lib\tiny_native_fc_player\Crinkler\tiny_native_fc_player.obj'

funny thing about this is that the obviously missing "tiny_native_fc_player.obj" DOES exist ...

I also tried it with the standalone Crinkler.exe on the command line ... same thing ...

Anybody else got a similar error??! And how did you solve it ...

Help is appreciated :)

Thanks in advance.

SLiPPY

Offline Jim

  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 5301
  • Karma: 402
    • View Profile
Re: Problems with Crinkler ...
« Reply #1 on: September 05, 2007 »
You have to turn off Link Time Code Generation (or Whole Program Optimisation) = /LTCG.

Basically, you have a a few non-standard options set in your vcproj file that crinkler doesn't understand.  Some of these are benign eg. /NOLOGO, but definitely /LTCG has to get turned off - that's mentioned in the readme that comes with crinkler - and explains why it can't load the .obj. NB. the error 'failed to load...' is different from 'failed to find...'

Jim
Challenge Trophies Won:

Offline slippy

  • Atari ST
  • ***
  • Posts: 172
  • Karma: 42
    • View Profile
Re: Problems with Crinkler ...
« Reply #2 on: September 05, 2007 »
Doh! ... thanks for pointing that out, Jim ...

RTFM ... hehe :)

/LTCG (/Gy) was the nasty little switch ... anyway now I run into another error

Code: [Select]
1> : fatal error: LNK   0: import 'HeapAlloc' from 'kernel32' uses forwarded RVA. This feature is not supported by crinkler (yet)

WTF? Never heard of ... I don't use any alloc methods in my code at all - though I'm a bit lost again ...  ???

Offline taj

  • Bytes hurt
  • DBF Aficionado
  • ******
  • Posts: 4810
  • Karma: 189
  • Scene there, done that.
    • View Profile
Re: Problems with Crinkler ...
« Reply #3 on: September 05, 2007 »
Most likely you are declaring an array within a function...this may ... behind your back ... call heapAlloc.
If its the case, move the array outside the function. Usually this results in smaller code anyway.

Chris
Challenge Trophies Won: