暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【LFS 系列】从零开始 DIY Linux 系统:(六)构建 LFS 系统 - Ncurses-5.9

原创 Lucifer三思而后行 2021-10-03
418

Ncurses 软件包包含用于不依赖于特定终端的字符屏幕处理的库。

安装 Ncurses

首先进入到源码目录,解压软件包:

cd /sources
tar xf ncurses-5.9.tar.gz
cd ncurses-5.9

准备编译 Ncurses:

./configure --prefix=/usr           \
            --mandir=/usr/share/man \
            --with-shared           \
            --without-debug         \
            --enable-pc-files       \
            --enable-widec

编译软件包:

make

该软件包有个测试套件,但只能在安装完软件包后运行。测试程序在 test/ 目录中。查看该目录中的 README 文件获取更详细信息。

安装软件包:

make install

移动共享库到期望的 /lib 文件夹:

mv -v /usr/lib/libncursesw.so.5* /lib

由于库已经被移走了,符号链接指向了一个不存在的文件。

重建符号链接:

ln -sfv ../../lib/$(readlink /usr/lib/libncursesw.so) /usr/lib/libncursesw.so

很多应用程序仍然希望编辑器能找到非宽字符的 Ncurses 库。通过符号链接和链接器脚本欺骗这样的应用链接到宽字符库:

for lib in ncurses form panel menu ; do
    rm -vf                    /usr/lib/lib${lib}.so
    echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so
    ln -sfv lib${lib}w.a      /usr/lib/lib${lib}.a
    ln -sfv ${lib}w.pc        /usr/lib/pkgconfig/${lib}.pc
done

ln -sfv libncurses++w.a /usr/lib/libncurses++.a

最后,确保在编译时会查找 -lcurses 的旧应用程序仍然可以编译:

rm -vf                     /usr/lib/libcursesw.so
echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so
ln -sfv libncurses.so      /usr/lib/libcurses.so
ln -sfv libncursesw.a      /usr/lib/libcursesw.a
ln -sfv libncurses.a       /usr/lib/libcurses.a

如果需要的话,安装 Ncurses 的帮助文档:

mkdir -v       /usr/share/doc/ncurses-5.9
cp -v -R doc/* /usr/share/doc/ncurses-5.9

安装完成后清理工作:

cd ..
rm -rf ncurses-5.9


本次分享到此结束啦~

如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。

❤️ 技术交流可以 关注公众号:Lucifer三思而后行 ❤️

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论