链接动态Haskell库,缺少符号

时间:2015-07-09 00:20:02

标签: linux macos haskell libraries dynamic-linking

我有点问题。我一直在努力将我正在开发的一些Rust代码与一些用Haskell编写的繁重算法联系起来。我已经获得了很好的与ghc和cabal一起玩的货物,并让我的代码运行Fibonacci测试,现在我正在尝试将所有内容与我在Haskell中的算法正确链接。

问题:一切似乎都正确生成,但在运行时,我错过了一个符号:_attoparseczm0zi13zi0zi0_DataziAttoparsecziByteStringziBuffer_Buf_con_info

我将符号跟踪到已安装的haskell-platform软件包的一部分,但是当我尝试编译时:

ghc -o target/debug/build/shroudbase-algorithms-c299ade0066a2dda/out/libshroudbase.so -shared -dynamic -fPIC dist/build/Shroudbase/C.o cbits/wrapper.o -lHSrts -lffi -lHSattoparsec-0.13.0.0 -L.cabal-sandbox/lib/x86_64-osx-ghc-7.8.4/attoparsec-0.13.0.0`

我明白了:

ld: illegal text-relocation to '_base_DataziEither_Left_con_info' in /Applications/ghc-7.8.4.app/Contents/lib/ghc-7.8.4/base-4.7.0.2/libHSbase-4.7.0.2-ghc7.8.4.dylib from '_c3uyl_info' in .cabal-sandbox/lib/x86_64-osx-ghc-7.8.4/attoparsec-0.13.0.0/libHSattoparsec-0.13.0.0.a(Lazy.o) for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我似乎无法获得正确的库链接,以便使用包含的动态库运行Rust代码的主体。

如果我能提供更多信息,请告诉我。

EDIT1:可以找到以前的信息here

0 个答案:

没有答案