鱼C论坛

 找回密码
 立即注册
查看: 804|回复: 5

VIM魔鬼训练

[复制链接]
发表于 2024-2-8 22:53:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
问:明明有该文件,却显示“/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory”是怎么回事?

答:这只会出现在 64 位的 Linux 系统中,是因为系统缺少 32 位库导致,执行下边命令即可(root 权限)
yum -y install glibc.i686

在这之后我还是不能运行:
./vim_test_linux: error while loading shared libraries: libncursesw.so.5: cannot open shared object file: No such file or directory

查到这个错误表明程序依赖于 libncursesw.so.5 库,但系统找不到这个库文件。
可以尝试安装 ncurses 库,# yum install ncurses
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.sjtu.edu.cn
* extras: mirrors.huaweicloud.com
* updates: mirrors.huaweicloud.com
软件包 ncurses-5.9-14.20130511.el7_4.x86_64 已安装并且是最新版本
无须任何处理

我就不知道咋办了(-_-)?

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-2-8 22:53:58 | 显示全部楼层
没关系,这个问题的解决方法很简单。你需要安装一个叫做 `libncursesw.so.5` 的库文件。

首先,你可以尝试安装 ncurses-devel 库,使用以下命令:
sudo yum install ncurses-devel

如果你的系统是基于Debian/Ubuntu 的,可以使用以下命令:
sudo apt-get install libncurses5-dev

如果还是无法找到这个库文件,你可以手动下载并安装库文件。在终端中执行以下命令:
wget ftp://ftp.gnu.org/gnu/ncurses/ncurses-6.2.tar.gz
tar -xvf ncurses-6.2.tar.gz
cd ncurses-6.2
./configure
make
sudo make install

这样就完成了库文件的安装。

希望这个回答能够帮到你!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-8 23:04:56 | 显示全部楼层
对不起,好像没解决,是不是涉及到了Linux的问题了(~_~)
[tianchen@localhost ~]$ ./vim_test_linux
./vim_test_linux: error while loading shared libraries: libncursesw.so.5: cannot open shared object file: No such file or directory
[tianchen@localhost ~]$ su
密码:
[root@localhost tianchen]# yum install ncurses-devel
……
……
已安装:
  ncurses-devel.x86_64 0:5.9-14.20130511.el7_4                                 

完毕!
[root@localhost tianchen]# exit
exit
[tianchen@localhost ~]$ ls
vim_test_linux  公共  模板  视频  图片  文档  下载  音乐  桌面
[tianchen@localhost ~]$ ./vim_test_linux
./vim_test_linux: error while loading shared libraries: libncursesw.so.5: cannot open shared object file: No such file or directory
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-8 23:05:08 | 显示全部楼层
天陈陌临 发表于 2024-02-08 23:04
对不起,好像没解决,是不是涉及到了Linux的问题了(~_ ...


非常抱歉没有解决你的问题。在这种情况下,可能需要进行更改。

首先,请尝试使用以下命令,将环境变量 `LD_LIBRARY_PATH` 设置为包含 `libncursesw.so.5` 的路径:
export LD_LIBRARY_PATH=/usr/local/lib

然后再次执行 `./vim_test_linux` 命令看看是否能成功运行。如果还是不行,那么可能是链接库的问题。

你可以尝试创建软链接来解决这个问题。使用以下命令:
sudo ln -s /usr/lib64/libncursesw.so.6 /usr/lib64/libncursesw.so.5

这会将 `libncursesw.so.6` 软链接到 `libncursesw.so.5`。然后再次尝试运行 `./vim_test_linux`。

如果上述方法还是没有解决问题,你可以尝试编译和安装 Vim 的源代码。首先下载 Vim 的源代码包:
wget https://github.com/vim/vim/archive/master.zip
unzip master.zip
cd vim-master

然后使用以下命令配置和编译 Vim:
./configure
make
sudo make install

希望这些解决方案能够帮到你!如果还有问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-8 23:35:34 | 显示全部楼层
我在/etc/bashrc中export PATH=$PATH:/usr/lib64之后
./vim_test_linux
./vim_test_linux: error while loading shared libraries: libncursesw.so.5: wrong ELF class: ELFCLASS64
查找知需要一个32位版本的 libncursesw 库,但是系统中安装的是64位版本。
yum install ncurses-libs.i686
最终运行了,这样会有问题吗,还是我前面有地方没弄对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-8 23:35:44 | 显示全部楼层
天陈陌临 发表于 2024-02-08 23:35
我在/etc/bashrc中export PATH=$PATH:/usr/lib64之后
...


非常抱歉给你带来了困扰。经过你的描述,原来问题是由于系统中缺少32位版本的libncursesw库所导致的。通过安装ncurses-libs.i686这个32位版本的库,你成功解决了问题,并且程序现在可以正常运行了。

安装32位版本的库并没有什么问题,它只是为了满足程序的依赖关系而安装的。通常情况下,64位系统会同时支持32位程序的运行。因此,你不需要担心可能会出现问题。

至于前面的错误信息,对于初学者来说,这类问题有时候很难一次就找到正确的解决方法。但是通过不断尝试和寻找解决方案,你最终成功解决了问题。这种探索和解决问题的过程也是编程学习的一部分,希望你能从中获得一些经验。

如果你还有其他问题,欢迎随时提问!我会尽力帮助你。祝你编程愉快!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 11:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表