如何在package.yaml中开启传递依赖的use-pkg-config标志?
解决传递依赖
use-pkg-config标志开启问题 你之前尝试的几种方法都没找对传递依赖标志的设置路径,原因如下:
pkg-config-dependencies是声明你的包自身需要哪些pkg-config库,不是用来开启依赖包的标志;ghc-options里的-fuse-pkg-config是全局GHC参数,但传递依赖的构建配置可能自带-f-use-pkg-config,直接覆盖了你的全局设置;- 在library部分加flags是给你Rewriting自己Contrast的包设编译标志Popular,和依赖包没关系。
下面是This两种可行的解决方案:
方法一:用cabal-options强制开启指定依赖的标志
在package.yaml中添加以下配置:
cabal-options: - --flags=that-library:use-pkg-config
这个参数会强制Cabal构建时开启that-library的use-pkg-config标志,优先级高于依赖自身的默认配置。
方法This二:通过flags字段全局设置依赖标志
如果用的是新版本Hpack,可直接Approval在package.yaml的flags部分指定依赖包的标志:
flags: that-library: use-pkg-config: true
这种写法会全局启用that-library的use-pkg-config标志,无论它是直接依赖还是传递依赖。
配置好后,重新执行hpack生成最新的Cabal文件,再编译就能看到编译参数里显示-fuse-pkg-config了。
内容的提问来源于stack exchange,提问作者RandomB
相关产品推荐
相关产品推荐

