[Haskell-cafe] Linking failing due to Control.Monad.State.Strict?

Daniel Peebles pumpkingod at gmail.com
Thu Aug 6 21:43:44 EDT 2009


Try with ghc --make ?

On Thu, Aug 6, 2009 at 9:38 PM, <phil at beadling.co.uk> wrote:
> Hi,
>
> I'm getting a linker error when generating makefile dependencies on the
> below library for a program I'm using.  It links fine under 'ghc --make'.
>  I'm using (more or less) the makefile from the haskell docs.  I am using
> the Strict State Monad in the object files it is complaining about, the
> compile is fine, just the linker which is blowing up. Any ideas what is
> causing this?
>
> I'm using GHC 6.10.4 on PPC Mac OS X 10.5.
>
> I've included the makefile below the error.
>
> Cheers!
>
> Phil.
>
>
> ghc -o OptionCalculator -O2 -Wall  ./FrameworkInterface.o ./Maths/Prime.o
> ./Misc/Debug.o ./MonteCarlo/DataStructures.o ./MonteCarlo/European.o
> ./MonteCarlo/Framework.o ./MonteCarlo/Interface.o ./MonteCarlo/Lookback.o
> ./Normal/Acklam.o ./Normal/BoxMuller.o ./Normal/Framework.o
> ./Normal/Interface.o ./OptionCalculator.o ./Random/Framework.o
> ./Random/Halton.o ./Random/Interface.o ./Random/Ranq1.o
> Undefined symbols:
>  "_mtlzm1zi1zi0zi2_ControlziMonadziStateziStrict_a29_info", referenced from:
>      _r1hl_info in Acklam.o
>      _rGL_info in BoxMuller.o
>  "_mtlzm1zi1zi0zi2_ControlziMonadziStateziStrict_a29_closure", referenced
> from:
>      _r1hl_srt in Acklam.o
>      _rGL_srt in BoxMuller.o
>  "___stginit_mtlzm1zi1zi0zi2_ControlziMonadziStateziStrict_", referenced
> from:
>      ___stginit_FrameworkInterface_ in FrameworkInterface.o
>      ___stginit_FrameworkInterface_ in FrameworkInterface.o
>      ___stginit_MonteCarloziEuropean_ in European.o
>      ___stginit_MonteCarloziEuropean_ in European.o
>      ___stginit_MonteCarloziFramework_ in Framework.o
>      ___stginit_MonteCarloziFramework_ in Framework.o
>      ___stginit_MonteCarloziLookback_ in Lookback.o
>      ___stginit_MonteCarloziLookback_ in Lookback.o
>      ___stginit_NormalziAcklam_ in Acklam.o
>      ___stginit_NormalziAcklam_ in Acklam.o
>      ___stginit_NormalziBoxMuller_ in BoxMuller.o
>      ___stginit_NormalziBoxMuller_ in BoxMuller.o
>      ___stginit_NormalziFramework_ in Framework.o
>      ___stginit_NormalziFramework_ in Framework.o
>      ___stginit_RandomziFramework_ in Framework.o
>      ___stginit_RandomziFramework_ in Framework.o
>      ___stginit_RandomziHalton_ in Halton.o
>      ___stginit_RandomziHalton_ in Halton.o
>      ___stginit_RandomziRanq1_ in Ranq1.o
>      ___stginit_RandomziRanq1_ in Ranq1.o
> ld: symbol(s) not found
> collect2: ld returned 1 exit status
> make: *** [OptionCalculator] Error 1
>
>
>
>
> Makefile:
>
>
> HC      = ghc
> HC_OPTS = -O2 -Wall $(EXTRA_HC_OPTS)
>
> SRCS := $(shell find . -name "*.hs" -print)
> OBJS = $(SRCS:.hs=.o)
> PROG = OptionCalculator
>
> .SUFFIXES : .o .hs .hi .lhs .hc .s
>
> ${PROG} : $(OBJS)
>          rm -f $@
>          $(HC) -o $@ $(HC_OPTS) $(OBJS)
>
> # Standard suffix rules
> .o.hi:
>        @:
>
> .lhs.o:
>        $(HC) -c $< $(HC_OPTS)
>
> .hs.o:
>        $(HC) -c $< $(HC_OPTS)
>
> .o-boot.hi-boot:
>        @:
>
> .lhs-boot.o-boot:
>        $(HC) -c $< $(HC_OPTS)
>
> .hs-boot.o-boot:
>        $(HC) -c $< $(HC_OPTS)
>
> clean :
>        find . -name "*.hi" -exec rm -f {} \;
>        find . -name "*.o" -exec rm -f {} \;
>        rm -f ${PROG}
>
> depend :
>        ghc -M $(HC_OPTS) $(SRCS)
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>


More information about the Haskell-Cafe mailing list