首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用` `Haskell‘在本地构建和修改来自Hackage的包的源代码?

如何使用` `Haskell‘在本地构建和修改来自Hackage的包的源代码?
EN

Stack Overflow用户
提问于 2022-02-15 23:35:42
回答 1查看 164关注 0票数 2

背景

我下载了包的源文件(例如test-framework),以便更仔细地了解它的体系结构,并对其进行实验修改,并可能在以后做出贡献。

我下载了源代码,陷入了不兼容和大量编译器错误中。

问题

是否有一步一步的过程,如何正确地获得源代码并使用Haskell Stack设置这样的项目?

EN

回答 1

Stack Overflow用户

发布于 2022-02-15 23:35:42

程序

我们可以从以下两个机会中作出选择:

  • 不使用tarball文件
  • 使用tarball文件

过程-不使用tarball文件

多亏了“抽烟的人”。

  1. 设置您的主要项目
  2. 解压缩应该作为源代码获得的包。 stack unpack
  3. 将当前目录更改为创建的文件夹 cd <package>
  4. 初始化文件夹(创建文件stack.yaml) stack init
  5. 修改stack.yaml的主要项目,添加包的相对路径节packages
  6. 修改主项目的package.yaml,将依赖项添加到带约束的包(例如== 1.2.1)到dependencies节中
  7. 删除阴谋文件(此处为Test6.cabal),如果有的话
  8. 在主文件夹中构建主项目stack build

注意:这个设置甚至可以通过输入stack ghci:reload在ghci中使用。

过程-使用tarball文件

  1. 设置您的主要项目
  2. 解压缩应该作为源代码获得的包。 stack unpack
  3. 将当前目录更改为创建的文件夹 cd <package>
  4. 初始化文件夹(创建文件stack.yaml) stack init
  5. 生成包代码的tarball文件。 stack sdist
  6. 修改stack.yaml的主要项目,添加包的相对路径节extra-deps
  7. 修改主项目的package.yaml,将依赖项添加到带约束的包(例如== 1.2.1)到dependencies节中
  8. 删除阴谋文件(此处为Test6.cabal),如果有的话
  9. 在主文件夹中构建主项目stack build

更详细的程序

有关详细信息,请检查源:使用“堆栈”从源本地构建包

示例项目

另外,对于这两个选项,您可以在这里找到一个完整的项目,其中模块Random导出一个额外的函数。

GitHub:

Test7 -不使用tarball文件

Test6 -使用tarball文件

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71134730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档