occasional linking problems with --make?

Evan Laforge qdunkan at gmail.com
Tue Aug 2 07:52:24 CEST 2011

Just as an addendum, this just happened again, but I got new errors
this time.  Make gave the usual:

Linking build/test/RunTests ...
Undefined symbols:
  "_UiziTrackC_d28LF", referenced from:
      _s28UI_info in TrackC.o
  "_UiziRulerC_dk8C", referenced from:
      _skev_info in RulerC.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

But then reloading that same module in ghci gave a new one:

> :r
[ 23 of 124] Compiling Ui.UiMsg         ( Ui/UiMsg.hs, interpreted )

    Can't find interface-file declaration for type constructor or
class Key.Modifier
      Probable cause: bug in .hi-boot file, or inconsistent .hi file
      Use -ddump-if-trace to get an idea of which file caused the error
    In the type `[Key.Modifier]'
    In the definition of data constructor `Mouse'
    In the data type declaration for `Data'

The odd thing is that after restarting ghci and loading there was no
problem, so I didn't get a chance to try its -ddump-if-trace
suggestion.  In this case before the reload I had added an instance
declaration to a type in the Key module, though oddly it wasn't the
referenced Modifier type.

Removing the referenced .o files and recompiling was enough to fix the
link error.

More information about the Glasgow-haskell-users mailing list