在没有管理员权限的情况下构建 zsh:找不到终端处理库

Ame*_*ina 5 compiling zsh

我正在尝试在 Linux 机器上安装没有 root 权限的 Zsh。我下载了源 tarball 并运行:

./configure --prefix=<my_installation_path>
Run Code Online (Sandbox Code Playgroud)

但后来我得到:

配置:错误:“在您的系统上找不到终端处理库。这可能是一个名为curses或ncurses的库。您可能需要在系统上安装一个名为“curses-devel”或“ncurses-devel”的软件包”

安装 ncurses:

由于我不是这个系统的root用户,所以我ncurses手动下载并安装了它(也使用./configure --prefix=<my_installation_path>),这似乎进展顺利。

然后我更新了以下路径:

INSTALLATION_PATH='/path/to/installation'
export PATH=$INSTALLATION_PATH/bin/:$PATH
export LD_LIBRARY_PATH=$INSTALLATION_PATH/lib:$LD_LIBRARY_PATH
export CFLAGS=-I$INSTALLATION_PATH/include
Run Code Online (Sandbox Code Playgroud)

并尝试再次安装 Zsh,但出现相同的ncurses错误。据我所知,上面的路径变量指向正确的位置,我可以在 shell 上检查这一点。为什么Zsh无法识别ncurses?

Ame*_*ina 3

更新:

按照吉尔斯的回答,我进行了更新CPPFLAGS,并且LDFLAGS问题在 期间消失了configure

但是,我现在在以下过程中遇到错误make

<INSTALLATION_PATH>/lib/libncurses.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我也得到一个recompile with -fPIC. 我猜这指的是ncurses. 我认为这意味着我构建ncurses为静态,我应该将其构建为动态?我该怎么做呢?

更新2:

我又重新编译了ncurses一遍。这次,我做了:

  • export CXXFLAGS=" -fPIC"
  • export CFLAGS=" -fPIC"

先于,make然后添加--enable-shared./configurencursesZsh这似乎已经解决了问题!