- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我似乎无法在我的项目上成功运行 cabal install
,因为它依赖于 text-icu
包,而该包需要 icu4c
库安装在系统上。
嗯,我使用 brew install icu4c
在我的 Mac 上安装了 icu4c
。
但是 cabal install text-icu
仍然不起作用,因为 brew install icu4c
将库安装在 cabal 构建系统找不到它的地方。 brew info icu4c
给了我这些特殊说明:
This formula is keg-only, so it was not symlinked into /usr/local.
...
Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:
LDFLAGS: -L/usr/local/opt/icu4c/lib
CPPFLAGS: -I/usr/local/opt/icu4c/include
所以我需要告诉 cabal 这些 LDFLAGS 和 CPPFLAGS。我如何在我的 cabal 文件中做到这一点?
编辑
brew link icu4c --force
似乎可以解决问题。但我还是想知道原来问题的答案。
最佳答案
Homebrew 为您提供了一个用于 CPPFLAGS
的目录,另一个用于 LDFLAGS
的目录。我们需要将 Haskell 构建系统指向这些目录,以便它可以找到要包含的适当的头文件以及要链接的适当的库。
您可以使用一些选项标志将所需的信息传递给cabal install
,如下所示:
cabal install \
--extra-include-dirs=THAT_CPPFLAGS_DIR \
--extra-lib-dirs=THAT_LDFLAGS_DIR \
…
如果您要提供多个目录,则可以重复 --extra-XXX-dirs
标志来逐一构建目录列表。
如果您使用的是堆栈,那么您可以通过附加以下内容来提供这些选项作为 ~/.stack/config.yml
中用户配置的一部分:
extra-include-dirs:
- /usr/local/opt/openssl/include
- /usr/local/opt/icu4c/include
extra-lib-dirs:
- /usr/local/opt/openssl/lib
- /usr/local/opt/icu4c/lib
这将适用于您作为该用户堆栈构建
的所有内容,而无需在每个命令调用上使用标志进行模糊处理。
关于haskell - 如何将 CPPFLAGS 和 LDFLAGS 添加到我的 cabal 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23888855/
我是一名优秀的程序员,十分优秀!