【问题标题】:How to substitute libedit readline with GNU readline on Mac OS如何在 Mac OS 上用 GNU readline 替换 libedit readline
【发布时间】:2023-03-24 06:35:01
【问题描述】:

在我的 Mac OS (Moneterey 12.1) 上,我看到 $NetBSD: readline.h, v 1.33 2012/05/15 我猜它是 libedit 库的一部分。我想使用 readline.h,它是 GNU readline 库的一部分。 有可能这样做吗?我应该执行哪些步骤? 可能是我使用了一些不正确的术语或误解了一些概念。非常感谢您的帮助。

【问题讨论】:

    标签: macos gnu readline netbsd


    【解决方案1】:

    嗯,我找到了一个适合我的解决方案。 第一步,我安装了 GNU Readline,如图所示 here。就我而言,我做到了:

    wget ftp://ftp.gnu.org/gnu/readline/readline-8.1.tar.gz
    tar xvfz readline-8.1.tar.gz
    cd readline-8.1
    ./configure --prefix=/usr/local/readline/8.1
    make
    make install
    
    ln -s /usr/local/readline/8.1/include/readline /usr/local/include/
    
    ln -s /usr/local/readline/8.1/lib/libhistory.a /usr/local/lib/
    ln -s /usr/local/readline/8.1/lib/libhistory.so /usr/local/lib/
    ln -s /usr/local/readline/8.1/lib/libhistory.so.8 /usr/local/lib/
    ln -s /usr/local/readline/8.1/lib/libhistory.so.8.1 /usr/local/lib/
    ln -s /usr/local/readline/8.1/lib/libreadline.a /usr/local/lib/
    ln -s /usr/local/readline/8.1/lib/libreadline.so /usr/local/lib/
    ln -s /usr/local/readline/8.1/lib/libreadline.so.8 /usr/local/lib/
    ln -s /usr/local/readline/8.1/lib/libreadline.so.8.1 /usr/local/lib/
    

    然后我重新安装 Ruby 并使用 GNU readline 编译它,就像讨论过的 here:

    rvm get head
    rvm reinstall ruby --disable-binary --with-opt-dir=$(brew --prefix readline)
    

    最后,在编译我的项目时,我使用了 -lcurses 选项 (-lreadline -lcurses),正如 here 所讨论的那样。

    【讨论】:

      猜你喜欢
      • 2012-01-07
      • 1970-01-01
      • 2014-01-22
      • 1970-01-01
      • 2013-08-01
      • 1970-01-01
      • 2012-04-26
      • 2017-07-19
      • 1970-01-01
      相关资源
      最近更新 更多