Ho creato collegamenti FFI al contenitore C++ unordered_map (a.k.a. Hash_map) e alla relativa libreria wrapper denominata libstl.a
. Per la prima volta, funzionava bene. Ma dopo un certo punto, non è riuscito a collegare la libreria con i seguenti messaggi di errore e non riesco a capire perché.collegamento librerie/oggetti aggiuntivi non riusciti
$ 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
I codici sorgente per la libreria si trovano in https://github.com/comatose/stl-container. Qualsiasi aiuto sarà apprezzato.
sarebbe 'strip'ping i file .o lavorare? – ocramz
È passato un po 'di tempo da quando ho guardato questo. Non credo che la strip sia stata d'aiuto, ma non ne sono sicuro al 100%. Le versioni di GHC 7.8 e successive sembrano essere in grado di caricare librerie con simboli deboli, quindi non hanno questo problema. –