zrobiłem powiązania FFI do C++ unordered_map (a.k.a. Hash_map) pojemnik i jego biblioteka otoki nazywa libstl.a
. Po raz pierwszy dobrze działało. Ale po pewnym czasie nie udało się połączyć biblioteki z poniższymi komunikatami o błędach i nie wiem, dlaczego.łączące dodatkowych bibliotek/obiektów udało
$ ghci -L. -lstl -lstdc++
GHCi, version 7.6.2: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading object (static archive) ./libstl.a ... done
Loading object (dynamic) /usr/lib/gcc/x86_64-linux-gnu/4.7/libstdc++.so ... done
final link ... ghc: ./libstl.a: unknown symbol `_ZZNKSt8__detail20_Prime_rehash_policy11_M_next_bktEmE10__fast_bkt'
linking extra libraries/objects failed
kody źródłowe biblioteki znajduje się w https://github.com/comatose/stl-container. Każda pomoc zostanie doceniona.
byłoby 'strip'ping te pliki .o pracować? – ocramz
Minęło trochę czasu, odkąd na to patrzyłem. Nie sądzę, żeby strip był jakąkolwiek pomocą, ale nie jestem w 100% pewny. Wersje GHC 7.8 i nowsze wersje wydają się być w stanie załadować biblioteki ze słabymi symbolami, więc nie mają tego problemu. –