如何解决cabal/stack/nix 可以编译成动态库吗?
我正在尝试将包含导出的 ffi 代码的共享库构建到共享库中。我想知道是否可以使用诸如 stack 或 nix 之类的常用工具来做到这一点(所以基本上是使用 cabal)? 是吗?那怎么办?
https://github.com/bennoleslie/haskell-shared-example 包含此类代码的良好示例,但带有手动构建说明。
解决方法
您要查找的 .cabal 文件节是 foreign-library
。 documentation 很好地描述了它。
至于 nix,如果您使用 haskell.nix
,外部库的派生将在 <binding>.components.foreignlibs.<libname>
下公开。
要使用 cabal2nix
构建,请运行
cabal2nix . > default.nix
nix-build -E '(import <nixpkgs> {}).haskellPackages.callPackage ./default.nix {}'
您的共享库将位于 result/lib/ghc-<version>/<your-lib>.(so|dll|dylib)
下。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。