Ho la seguente situazione:Una soluzione alternativa per il bug "Template Haskell + C"?
- Library X è un wrapper su un certo codice in C.
- Library A dipende biblioteca X.
- Library B usa Template Haskell e dipende biblioteca A.
GHC bug #9010 rende impossibile installare la libreria B utilizzando GHC 7.6. Quando TH viene elaborato, GHCi spara e tenta di caricare X biblioteca, che non riesce con un messaggio come
Loading package charsetdetect-ae-1.0 ... linking ... ghc:
~/.cabal/lib/x86_64-linux-ghc-7.6.3/charsetdetect-ae-1.0/
libHScharsetdetect-ae-1.0.a: unknown symbol `_ZTV15nsCharSetProber'
(il nome effettivo del “simbolo sconosciuto” si differenzia da macchina a macchina).
Esistono soluzioni alternative per questo problema (ad eccezione di "non utilizzare Template Haskell", ovviamente)? Forse la libreria X deve essere compilata in modo diverso, o c'è un modo per impedirne il caricamento (come non dovrebbe essere chiamato durante la generazione del codice)?
Aggiungi 'opzione -lyourlibname' a ghci dove libyourlibname.so è le coperture libreria X. –
@ n.m. Non c'è 'libyourlibname.so' - tutto il codice che è incapsulato dalla libreria X è contenuto nella libreria X stessa. – Artyom
Hm, sembra che tu abbia ragione. Il simbolo è sconosciuto, non indefinito. –