2011-07-09 20 views
5

Hackage'dan double-conversion paketini oluşturmaya çalışıyorum. Tamam, ancak ghci yükleyemiyor. şikayet:Bir Hackage paketindeki Tanımsız sembol "çift dönüştürme"

Loading package double-conversion-0.2.0.0 ... linking ... <interactive>: 
/home/me/.cabal/lib/double-conversion-0.2.0.0/ghc-7.0.4/HSdouble-conversion-0.2.0.0.o: 
unknown symbol `_ZNK17double_conversion6Double5valueEv' 

nm çıktı sembol zayıf olduğunu gösterir:

nm /home/me/.cabal/lib/double-conversion-0.2.0.0/ghc-7.0.4/HSdouble-conversion-0.2.0.0.o \ 
    | grep _ZNK17double_conversion6Double5valueEv 
00000000 W _ZNK17double_conversion6Double5valueEv 

Bu dosyada sadece zayıf semboldür ve gerçekten de, bildiğim kadarıyla söyleyebilirim, GHC tarafından derlenmiş paketlerin tüm dünyasında.

Sorunlu işlev açıkça C++ ile yazılmış ve double-conversion/src/double.h numaralı satır içinde tanımlanmış bir FFI öğesidir. Buradaki tek satır içi işlevi değil, yalnızca bu kişi zayıf olarak etiketlendi.

Bir durma önlemi olarak işlevi devre dışı bıraktım ve paket şimdi yükleniyor. Ama belli ki orada bir yerde bir sorun var. Bu işlev neden zayıf? Neden diğer işlevler değil? Ghc zayıf sembollerden şikayet etmeli mi? Ben bir hata dosya ve eğer öyleyse, kim (çift dönüşüm, gcc, ghc, başka biri) almalı mıyım?

Sistem verileri: Gentoo Linux, gcc-4.4.5, ghc-7.0.4, cabal -1.10.2.0.

+0

Metin formatını kurmaya çalışırsanız ne tür bir hata alırsınız? Belki Yesod, Template Haskell'den çift dönüşüm kullanmayı dener mi? –

+0

Bindirmeyi kullanmayı denediniz mi? – alternative

+0

@monadic: Ben aslında, ancak başarısız sonra yerel 'cabal install' denedim overlay kullanıyorum. Hata mesajı aynı. @Mikhail Glushenkov: Aslında 'text-format' kurabilirim, ama 'yesod' kuramıyorum. Hata mesajı aynı. –

cevap

1

GHC Trac üzerindeki bu bilet şu şekilde görünüyor: Can't use ghci with a library linked against libstdc++. Bu, bir Gentoo (veya muhtemelen GCC 4.4) 'e özgü bir soruna benziyor - söz konusu olan .o dosyası sistemimde zayıf semboller içermiyor (Ubuntu Natty üzerinde GCC 4.5.2 & GHC 7.0.3/7.0 ile test ettim. 4). GHC Trac'e bir bilet almanı öneririm. Bu arada # 5289'u yeniden üretebilirim.

+0

Bu sadece GHCi değil. 'Çift-dönüşüme' bağlı olan paketler de yüklenmez (en sonunda "yesod" oluşturmaya çalışıyorum). Hata mesajı da farklı. –

+1

İlginç! 'cabal install text-conversion' benim için çalışıyor, bu yüzden muhtemelen Gentoo'ya özgü bir problem. 'nm', sistemimde HSdouble-conversion-0.2.0.0.o'da zayıf semboller göstermez. –

+0

ghc ve gcc hangi sürümünü kullanıyorsunuz? –

İlgili konular