Tag: cabal

尝试与Haskell的C ++绑定:获取未定义的引用错误

我在Haskell中尝试C ++绑定,并在调用绑定时遇到“未定义的引用”错误。 我做了一个小项目( http://github.com/deech/CPlusPlusBindings )来说明问题。 它包括一个小的C ++类,一个C包装器,一个C测试脚本和一个Haskell绑定和一个测试脚本。 C测试脚本有效,Haskell给我一个: [1 of 1] Compiling Binding ( dist/build/Binding.hs, dist/build/Binding.o ) src/Binding.chs:6:26: Warning: Defined but not used: `res’ In-place registering CPlusPlusBinding-0.1.0.0… Preprocessing executable ‘binding_test’ for CPlusPlusBinding-0.1.0.0… [1 of 1] Compiling Main ( src/BindingTest.hs, dist/build/binding_ /binding_test-tmp/Main.o ) src/BindingTest.hs:3:1: Warning: Top-level binding with no type signature: main :: IO () Linking […]

静态链接C库和Haskell库

我有一个Haskell项目,旨在创建一些C ++绑定。 我编写了C包装器并将它们编译成一个独立的静态链接库。 我想编写Haskell绑定以静态链接到C包装器,这样我就不必单独分发C包装器,但我似乎无法使它工作,并希望得到一些帮助。 我指定C库作为额外的库,但我的cabal build步骤似乎没有将它添加到编译命令。 我已经创建了一个小项目来说明这一点( http://github.com/deech/CPlusPlusBindings )。 它包含一个小的C ++类( https://github.com/deech/CPlusPlusBindings/tree/master/cpp-src),C包装器( https://github.com/deech/CPlusPlusBindings/tree/master/c- src ),一个工作的C测试例程( https://github.com/deech/CPlusPlusBindings/tree/master/c-test )和Haskell文件( https://github.com/deech/CPlusPlusBindings/blob/master/ src / BindingTest.chs )。 在Setup.hs中添加了C库,而不是在Cabal文件中,因为这就是我的实际项目,它是在构建步骤之前使用“make”通过Cabal构建C库的。 我已经validation在构建步骤中, extraLibs部分包含库名称, extraLibDirs包含正确的目录。 我的cabal build的输出是: creating dist/setup ./dist/setup/setup build –verbose=2 creating dist/build creating dist/build/autogen Building CPlusPlusBinding-0.1.0.0… Preprocessing library CPlusPlusBinding-0.1.0.0… Building library… creating dist/build /usr/local/bin/ghc –make -fbuilding-cabal-package -O -odir dist/build -hidir dist/build -stubdir […]