Tôi đã có tình hình sau:Giải pháp cho lỗi “Mẫu Haskell + C”?
- Library X là một wrapper qua một số mã trong C.
- Library A phụ thuộc vào thư viện X.
- Library B sử dụng Template Haskell và phụ thuộc vào thư viện A.
GHC bug #9010 không thể cài đặt thư viện B bằng GHC 7.6. Khi TH được xử lý, GHCi cháy lên và cố gắng để tải thư viện X, mà không thành công với một thông báo như
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'
(tên thực tế của “không rõ biểu tượng” khác với máy để máy).
Có cách giải quyết nào cho vấn đề này (ngoài “không sử dụng mẫu Haskell”, tất nhiên)? Có thể thư viện X đã được biên dịch khác nhau, hoặc có một số cách để ngăn chặn nó tải (vì nó không nên được gọi là trong quá trình tạo mã anyway)?
Thêm 'tùy chọn -lyourlibname' để ghci nơi libyourlibname.so là liệu pháp quấn thư viện X. –
@ n.m. Không có 'libyourlibname.so' - tất cả mã được gói bởi thư viện X được chứa trong thư viện X. – Artyom
Hm, có vẻ như bạn đã đúng. Biểu tượng không xác định, không được xác định. –