
C.M.Brown wrote:
Hello,
I am trying to use the API to interpret a Main module and get some type information from it. However, everytime I try to load a "Main.hs" module using the API I get the following error message:
/usr/local/packages/ghc-6.8.2/lib/ghc-6.8.2/libHSrts.a(Main.o): In function `real_main': Main.c:(.text+0x7): undefined reference to `__stginit_ZCMain' Main.c:(.text+0x36): undefined reference to `ZCMain_main_closure' collect2: ld returned 1 exit status
If I create an empty file called "Main" within the directory where "Main.hs" is located the program suceeds, I'm guessing this is because there is no linking involved. Is there an extra flag I need to pass to GHC in order to avoid this error? It works perfectly if I try it on a module that is not called Main.
The GHC API is behaving just like --make: it links the program if you have a Main module. To ask it not to link, you want to do the same as '--make -c', which in the GHC API means setting the ghcLink field of DynFlags to NoLink. Cheers, Simon