天陈陌临 发表于 2024-2-8 22:53:44

VIM魔鬼训练

问:明明有该文件,却显示“/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 已安装并且是最新版本
无须任何处理

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

FishC 发表于 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 小助理,如未能正确解答您的问题,请继续追问。

天陈陌临 发表于 2024-2-8 23:04:56

对不起,好像没解决,是不是涉及到了Linux的问题了(~_~)
$ ./vim_test_linux
./vim_test_linux: error while loading shared libraries: libncursesw.so.5: cannot open shared object file: No such file or directory
$ su
密码:
# yum install ncurses-devel
……
……
已安装:
ncurses-devel.x86_64 0:5.9-14.20130511.el7_4                                 

完毕!
# exit
exit
$ ls
vim_test_linux公共模板视频图片文档下载音乐桌面
$ ./vim_test_linux
./vim_test_linux: error while loading shared libraries: libncursesw.so.5: cannot open shared object file: No such file or directory

FishC 发表于 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 小助理,如未能正确解答您的问题,请继续追问。

天陈陌临 发表于 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
最终运行了,这样会有问题吗,还是我前面有地方没弄对

FishC 发表于 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 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: VIM魔鬼训练