My question comes in two parts. The first is that when I compile my project I get a long list of errors of the form
(.text+0x137f): undefined reference to `raytrzuAd6RComi0WmBiuT4685WWH_Types_zdfBinaryColor_closure'
The full list of errors can be found here The code that produces this error can be found here.
I am using ghc 7.10.1 and cabal 1.22.4.0.
The second part of my question is that despite following the same cabal structure as this question, cabal still recompiles the library 3 times each cabal build despite the executables and the library all having a unique hs-source-dir
and depending on the library.
EDIT: as far as the triple compilation is concerned, the first time it builds .o
files [ 2 of 15] Compiling Types ( src/Types.hs, dist/build/Types.o )
. The second time it builds .p_o
files [ 2 of 15] Compiling Types ( src/Types.hs, dist/build/Types.p_o )
which are caused by TemplateHaskell and profiling.
You should include all the other non-exported modules in your Cabal file in the other-modules
field, otherwise they won't be linked in properly when producing the final library or executable.
You can see the Cabal User's Guide for more information (although that pretty much sums up the situation with other-modules
!).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With