我正在尝试编写一个需要输出外部程序的Haskell程序(例如lame,mp3编码器)。虽然在cabal中声明对库的依赖很容易,但是如何声明对可执行文件的依赖?
答案 0 :(得分:2)
您目前无法在.cabal文件中为外部可执行文件添加依赖项,而不是已知构建工具列表(请参阅build-tools:alex)。
但是,您可以指定构建类型:配置,然后使用单独的配置脚本来搜索任何其他二进制文件(例如,基于autoconf的配置脚本完全正常,可用于在源代码中设置常量)。
请注意,在编译时搜索运行时依赖项(例如lame编码器)可能不是一个好主意,因为许多软件包系统上的构建和运行环境不同。在程序启动时动态搜索所需的二进制文件可能是个更好的主意。
例如,hmp3使用
搜索mpg321 mmpg <- findExecutable (MPG321 :: String)
其中MPG321是通过./configure选项确定的程序名称。有关更多信息,请参阅haddocks: