
On 02/08/2011 06:52, Evan Laforge wrote:
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 )
Ui/UiMsg.hs:51:31: 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.
Can you save the state at some point when the error happen? Preferably when using --make rather than GHCi. Just tar/zip the whole directory and send it to us, with instructions to reproduce the error. What platform is this BTW? Cheers, Simon