Dark Bit Factory & Gravity
PROGRAMMING => General coding questions => Topic started by: slippy 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:
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
-
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
-
Doh! ... thanks for pointing that out, Jim ...
RTFM ... hehe :)
/LTCG (/Gy) was the nasty little switch ... anyway now I run into another error
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 ... ???
-
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