[Mono-dev] Re: [Mono-list] Silly question (for documentation)

Kornél Pál kornelpal at hotmail.com
Mon Mar 6 19:54:14 EST 2006


Hi,

I've done a lot of research when creating my unmanaged resource
infrastructure.

I am 100% sure that there are only two temporary files used by csc.exe:

First one is a .res format file in the directory of the assembly that
contains the default resources (version info and optionally icon). (Only
when no /win32res is specified because it overrides default resource.)

The second one in %TEMP% is an .obj format file as Zac said but it is
created by cvtres.exe (I don't know why they use cvtres.exe instead of
integrating it to their PE generator) that isn't linked at all, it is
however interpreted by the PE generator and is written to the PE file
directly without using a linker or advanced object file interpretation as
the PE file generator assumes that it is the output of cvtres.exe.

Kornél

----- Original Message -----
From: "Zac Bowling" <zac at zacbowling.com>
To: "Miguel de Icaza" <miguel at ximian.com>
Cc: <Mono-list at lists.ximian.com>; "Jonathan Pryor" <jonpryor at vt.edu>;
<mono-devel-list at lists.ximian.com>
Sent: Tuesday, March 07, 2006 12:29 AM
Subject: [Mono-dev] Re: [Mono-list] Silly question (for documentation)


>>> I know that CSC creates a temp directory in where ever %TEMP% is
>>> pointed to, to create the object files and deletes them when its all
>>> done building but the compiler inlined in Visual Studio creates a local
>>> directory to store the object files (the lovely 'obj' dir you find
>>> lerking around).
>>
>> I doubt very much that CSC generates anything resembling an "object
>> file".   You are confused.
>
> "Object file" was the wrong term to use. I was thinking of
> incrimentally compiling some IL backends and storing it off in some
> files somewhere so it could be brought back together in the end.
> However, I've gone back and observed it and examined the files a bit
> more closely, and it looks more like its just garbage for the debuggers
> and designers more then anything. I did catch thoigh what I'm pretty
> sure is just the PE header of the assembly it was generating before it
> deleted it but a few bits are missing. Oh well.. not really all that
> exciting or important.
>
>>> Not sure how credible this is but it says on the DotGNU wiki about how
>>> their compiler works compared to ours: "..CSCC is a 3 step compile,
>>> assemble and link compiler, while MCS is a direct codegeneration in
>>> memory with Reflection.Emit." They might be doing something completely
>>> different system then anyone else out there
>>
>> They generate a text file with the il assembly, which later they pass on
>> to an IL assembler to assemble.  Thats all there is to it.
>
> oh really?.. uhh.. wow... hmm... that's kind of interesting, but I
> think I'm going to just leave that one alone then...
>
> Thanks everybody...
>
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>




More information about the Mono-devel-list mailing list