3

我正在尝试编写一个 Haskell 程序,该程序需要输出外部程序(例如 lame,mp3 编码器)。虽然在 cabal 中声明对库的依赖很容易,但如何声明对可执行文件的依赖?

4

1 回答 1

2

您目前无法在 .cabal 文件中为外部可执行文件添加依赖项,除了已知的构建工具列表(例如,请参阅 build-tools: alex)。

但是,您可以指定 build-type: Configure,然后使用单独的配置脚本来搜索任何其他二进制文件(例如,基于 autoconf 的配置脚本非常好,可用于在源代码中设置常量)。

请注意,在编译时搜索运行时依赖项(例如蹩脚的编码器)可能不是一个好主意,因为在许多包系统上构建和运行环境都不同。在程序启动时动态搜索所需的二进制文件可能是一个更好的主意。

例如,hmp3 搜索 mpg321

     mmpg <- findExecutable (MPG321 :: String)

其中 MPG321 是通过 ./configure 选项确定的程序名称。有关更多信息,请参阅黑线鳕:

http://hackage.haskell.org/packages/archive/directory/latest/doc/html/System-Directory.html#v:findExecutable

于 2010-04-17T23:09:01.563 回答