[Mono-list] Running vs2005 beta 2 compiled code on mono...
Alex Mohr
amohr at cs.wisc.edu
Fri Jul 1 13:54:38 EDT 2005
>Ususally the error message is the most important thing because it explains
>the error.:)
Heh yeah -- I know -- sorry again. I didn't have the machines to run it
again and I didn't recall the exact message.
>You probably get the error message 'Method '%s' in assembly '%s' contains
>native code and mono can't run it. The assembly was probably created by
>Managed C++.'
No -- that's what I get if I try to run C++ code compiled with VS2003 on
the mac, and that's what I expect since there's no /clr:pure flag in
2003.
Instead I compile this program using /clr:pure on vs2005 beta 2 and try
to run it on the mac but I get this error:
CODE:
int main()
{
return 0;
}
OUTPUT:
% mono HelloWorld05b2.exe
** ERROR **: file object.c: line 752 (mono_class_create_runtime_vtable):
assertion failed: (fklass->byval_arg.type == MONO_TYPE_PTR)
aborting...
Abort
>As the error message says Mono cannot run native code it can only run
>IL code. The reason is quite simple: Native code is processor and
>operating system dependent while IL code is platform independent.
Of course. I understand all that. I'm compiling /clr:pure so it's only
generating IL.
>C++ 2002 and 2003 cannot compile managed only code it allwasy contains some
>native code even if you do not call any native funtions nor CRT and use your
>own entry point to avoid CRT dependency. C++ 2005 is said to be able to
>compile IL only assemblies but I have never tried it.
Right, that's what /clr:pure does, except the resulting assembly
somewhat surprisingly doesn't run with mono on my mac.
Thanks,
Alex
More information about the Mono-list
mailing list