[MLton] Support for link options in ML Basis files
Chris Clearwater
chris@detriment.org
Thu, 20 Jan 2005 16:27:44 -0800
Matthew Fluet wrote:
>>Does all the above include compiling with MLton or is that just for
>>stand-alone C-programs? I had to include SDL.h in the MLton runtime,
>>
>>
>
>Could this have been a consequence of older versions of MLton not
>generating proper C-prototypes for imported functions?
>
>
>
I believe the problem he is refering to is that on windows, SDL assumes
you are compiling the main executable with a C compiler and including
"SDL/SDL.h". It does this to assist with the fact that Windows has a
different entry symbol with a different prototype than "main" used most
everywhere else (Maybe Mac OS is different as well?). To remedy this,
SDL defines the entry symbol itself and makes "main" a macro that
expands to SDL_main which it will call from the real main. Fortunately
the symbol is defined in a seperate static library
SDLmain.lib/libSDLmain.a and it really only applies to compiling with
MSVC as the MingW32 gcc will fix the main symbol for you. If you use the
flags sdl-config tells you to use it will try to link -lSDLmain and it
will conflict with MLton's main. Simply stripping -lSDLmain from the
link-opts fixed it for me.