C++のunordered_map(a.k.a.hash_map)コンテナおよびそのラッパーライブラリlibstl.a
にFFIバインディングを行いました。 最初は、うまく動作していました。しかし、いくつかの点の後で、それはライブラリを次のエラーメッセージとリンクさせることができず、なぜ私は理解できません。余分なライブラリ/オブジェクトのリンクに失敗しました
$ 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
ライブラリのソースコードは、https://github.com/comatose/stl-containerにあります。 助けていただければ幸いです。
は '.oファイルが動作しstrip'pingでしょうか? – ocramz
私はこれを見てからしばらくしています。私はストリップが助けとは思わなかったが、私は100%確実ではない。 GHC 7.8以降のバージョンでは、弱いシンボルでライブラリをロードできるようであるため、この問題は発生しません。 –