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@haskell.org >> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users >> > > > > _______________________________________________ > Glasgow-haskell-users mailing list > Glasgow-haskell-users@haskell.org > http://www.haskell.org/mailman/listinfo/glasgow-haskell-users > _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users