【问题标题】:How do you install the haskell readline library on Mac OSX?如何在 Mac OSX 上安装 haskell readline 库?
【发布时间】:2011-11-28 03:17:23
【问题描述】:

我指的是haskell readline library wrapperc readline library

cabal install readline 输出如下:

$ cabal install readline
Resolving dependencies...
Configuring readline-1.0.1.0...
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for GNUreadline.framework... checking for readline... no
checking for tputs in -lncurses... yes
checking for readline in -lreadline... yes
checking for rl_readline_version... yes
checking for rl_begin_undo_group... no
configure: error: readline not found, so this package cannot be built
See `config.log' for more details.
cabal: Error: some packages failed to install:
readline-1.0.1.0 failed during the configure step. The exception was:
ExitFailure 1

我通过 macports 安装了 c readline 库(使用 sudo port install readline),但在尝试安装 haskell readline 库时仍然遇到同样的错误。

【问题讨论】:

  • 如果您使用port 安装了readline,那么您为什么需要尝试使用cabal 安装它?
  • readline c 库是通过端口安装的,但是我无法安装readline haskell 库。我已经澄清了这个问题。
  • 是否有带端口的独立库和-dev 库包?如果是这样,您还需要安装 -dev 版本。
  • @DanielWagner 似乎没有。

标签: haskell readline


【解决方案1】:

如果您的 MacPorts 安装使用安装文件的默认路径,请尝试指定查找 C 头文件和库的位置:

cabal install readline --extra-include-dirs=/opt/local/include \
--extra-lib-dirs=/opt/local/lib

更新 2x:在我的机器上,通过 Homebrew 而不是 MacPorts 安装了 GNU Readline,看起来 Haskell readline 库的 configure 脚本需要一些非标准标志才能正确找到它的轴承。如果上述方法不起作用,请尝试以下操作:

cabal install readline --extra-include-dirs=/opt/local/include \
--extra-lib-dirs=/opt/local/lib \
--configure-option=--with-readline-includes=/opt/local/include \
--configure-option=--with-readline-libraries=/opt/local/lib

【讨论】:

  • 谢谢,我搞定了。我使用命令:sudo port install readline +universal 安装 readline,命令 cabal install readline --extra-include-dirs=/opt/local/include --extra-lib-dirs=/opt/local/lib --configure-option=--with-readline-includes=/opt/local/include --configure-option=--with-readline-libraries=/opt/local/lib 安装 haskell readline 库。
  • 当然;一旦configure 运行,它需要两者都实际链接。更新以反映最后一口命令
  • readline 公式只是小桶,因此我必须像这样添加小桶的完整路径:cabal install readline --extra-include-dirs=/usr/local/Cellar/readline/6.2.4/include/ --extra-lib-dirs=/usr/local/Cellar/readline/6.2.4/lib/ --configure-option=--with-readline-includes=/usr/local/Cellar/readline/6.2.4/include/ --configure-option=--with-readline-libraries=/usr/local/Cellar/readline/6.2.4/lib/
  • 我需要:cabal install readline --extra-include-dirs=/usr/local/Cellar/readline/6.2.4/include/ --extra-lib-dirs=/usr/local/ Cellar/readline/6.2.4/lib/ --configure-option=--with-readline-includes=/usr/local/Cellar/readline/6.2.4/include/readline --configure-option=--with- readline-libraries=/usr/local/Cellar/readline/6.2.4/lib/
  • 有没有人通过stack install成功做到这一点?
【解决方案2】:

我最终按照http://fp.okeefecreations.com/2010/08/installing-haskell-bindings-to-readline.html 此处的说明进行操作,以使其在我的 readline 自制安装中运行。我必须做的唯一修改是调整路径中列出的 readline 版本。

我知道这与 acfoltzer 的解决方案类似,但我没有代表在那里添加评论,或者我只是不知道如何发表评论。 :)

【讨论】:

  • $ cabal install readline --configure-option=--with-readline-libraries="/usr/local/Cellar/readline/6.2.4/lib" --configure-option=-- with-readline-includes="/usr/local/Cellar/readline/6.2.4/include" 最新版
  • 您答案中的链接已损坏。
【解决方案3】:

如果您使用了brew,这是您可以使用的命令,它与上述非常相似,您必须将我所说的版本替换为您系统上的版本,即7.0.5

cabal install readline --extra-include-dirs=/usr/local/Cellar/readline/7.0.5/include --extra-lib-dirs=/usr/local/Cellar/readline/7.0.5/lib --configure-option=--with-readline-includes=/usr/local/Cellar/readline/7.0.5/include --configure-option=--with-readline-libraries=/usr/local/Cellar/readline/7.0.5/lib

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 2012-04-10
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    相关资源
    最近更新 更多