Problem with the object file name of the Main module.

Thomas Hallgren hallgren at
Mon Jan 13 20:18:14 UTC 2014

The main module doesn't have to be called Main. You can specify a different name
with the -main-is option. That seems like the easiest way to avoid the object
file name clash.

By the way, this problem only seems to arise when the -odir flag is used. If my
Main module is in A.hs and I compile it with "ghc --make A.hs", I get "A.o",
"A.hi" and an executable file "A". (Tested with GHC 7.6.3.)

Thomas H

On 2014-01-13 19:22, Christian Brolin wrote:
> No. As a workaround I remove the Main.o file after the executable has been
> linked. It works, but it has its drawbacks.
> On 2014-01-12 17:23, Carter Schonwald wrote:
>> Christian, have you tried using cabal? People write cabal files with multiple
>> executables being generated all the time.  
>> On Sunday, January 12, 2014, Christian Brolin wrote:
>>     H.
>>     The documentation (version 7.6.3) section 7.7.2 Output files says that the
>>     source file name of the Main module does not have to be Main.hs making it
>>     "possible to have several Main modules in separate source files in the
>>     same directory". While this is true and promising it is seems to be
>>     unusable since GHC always compiles the main source file into an object
>>     file called Main.o.
>>     _______________________________________________
>>     Glasgow-haskell-users mailing list
>>     Glasgow-haskell-users at
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at

More information about the Glasgow-haskell-users mailing list