Haskell 如何与阴谋集团建立一个独立的图书馆?

Haskell 如何与阴谋集团建立一个独立的图书馆?,haskell,cabal,Haskell,Cabal,我有一个依赖于其他库的库,当然还有haskell运行时。它导出C API。 我想以一种完全独立的方式构建它,用户不必为安装haskell、cabal和所有依赖项而烦恼 它是完全独立的,用户不会为安装haskell、cabal和所有依赖项而烦恼 然后必须分发库及其所有依赖项—Haskell编译器、运行时、C库、Cabal、依赖库。这是一项非同小可的任务——你要自己动手 您可以修改HP源代码并生成安装程序。它们实际上是您的库的独立安装程序。您如何想象库用户与库交互?一个选项是制作包(rpm、deb、

我有一个依赖于其他库的库,当然还有haskell运行时。它导出C API。 我想以一种完全独立的方式构建它,用户不必为安装haskell、cabal和所有依赖项而烦恼

它是完全独立的,用户不会为安装haskell、cabal和所有依赖项而烦恼

然后必须分发库及其所有依赖项—Haskell编译器、运行时、C库、Cabal、依赖库。这是一项非同小可的任务——你要自己动手


您可以修改HP源代码并生成安装程序。它们实际上是您的库的独立安装程序。

您如何想象库用户与库交互?一个选项是制作包(rpm、deb、dmg等),另一个选项是将数百兆字节的构建基础设施添加到库的源发行版。@ThomasM.DuBuisson我想他想要类似于多项目解决方案的东西。@ThomasM.DuBuisson他们将使用gcc将代码与库链接,就像我这样调用ghc时所做的那样:`ghc-no hs main-static test.c libMylibrary.a'啊,所以您确实希望分发某种预编译的二进制文件。Cabal实际上是一个从源代码构建的系统,而不是一个二进制分发系统,但是有些软件包可以做你想要的,可以作为示例-
intel aes
就是这样一个软件包。我不太明白为什么会这样。通过显式列出所有依赖项“.a”文件,我可以构建一个调用我的库的测试C文件。难道不可能将所有依赖项打包成一个大的.a并作为我的库分发吗?我只需要从C代码调用我的库,而不是从haskell代码调用。是的,您可以编写自己的安装程序/绑定程序,以获取所有依赖项并链接它们。