【发布时间】: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 库的一部分。 有可能这样做吗?我应该执行哪些步骤? 可能是我使用了一些不正确的术语或误解了一些概念。非常感谢您的帮助。
【问题讨论】:
在我的 Mac OS (Moneterey 12.1) 上,我看到 $NetBSD: readline.h, v 1.33 2012/05/15 我猜它是 libedit 库的一部分。我想使用 readline.h,它是 GNU readline 库的一部分。 有可能这样做吗?我应该执行哪些步骤? 可能是我使用了一些不正确的术语或误解了一些概念。非常感谢您的帮助。
【问题讨论】:
嗯,我找到了一个适合我的解决方案。 第一步,我安装了 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 所讨论的那样。
【讨论】: