鱼C论坛

 找回密码
 立即注册
查看: 2510|回复: 7

[已解决]vim魔鬼训练营第一个小程序不能运行问题

[复制链接]
发表于 2022-7-13 14:56:17 | 显示全部楼层 |阅读模式

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

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

x

你好
在运行linux文件的时候出现了如下错误(已切换到对应文件夹)

./vim_test_linux: error while loading shared libraries: libncursesw.so.5: cannot open shared object file: No such file or directory

请问这个问题怎么解决,麻烦了
最佳答案
2022-7-13 16:19:08
本帖最后由 jackz007 于 2022-7-13 18:16 编辑
aniceguy 发表于 2022-7-13 15:08
问题解决了,非常感谢

能麻烦简单解释一下原因吗,多谢了


        linux 系统的 .so 文件是动态库(也叫共享库),相当于 Windows 系统下的 dll 文件,我们编写 C 语言代码往往需要用到一些现成的函数,这些函数有些是由 C 语言系统提供的,有些是由第三方代码库提供的,代码编译的时候,可以选择静态连接或动态连接,其中,静态连接就是把被调用函数的代码直接写入可执行文件,使被调用函数成为可执行文件本身的一部分;动态连接就是被调用函数驻留在动态库中,代码编译时,包含被调用函数的动态库信息被写入可执行文件,当程序运行的时候,相关的动态库会被操作系统自动加载到内存,为程序运行提供支撑。这个 "libncursesw.so.5" 就是 "vim_test_linux" 运行需要依赖的一个动态库文件,缺少了这个库,"vim_test_linux" 就不再是一个完整的程序文件了。
        在 linux 系统下,每一个程序都必须和操作系统打交道,操作系统函数都位于动态库内,所以,每一个可执行程序都必须依赖动态库。
        在“vim_test_linux” 的所在目录内,键入命令:
ldd vim_test_linux
        可以查看 “vim_test_linux” 依赖的所有动态库的列表。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-13 15:00:03 | 显示全部楼层
运行:yum install xulrunner.i686
输入:y
等待安装结束再运行,试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2022-7-13 15:08:23 | 显示全部楼层
临时号 发表于 2022-7-13 15:00
运行:yum install xulrunner.i686
输入:y
等待安装结束再运行,试试

问题解决了,非常感谢

能麻烦简单解释一下原因吗,多谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-13 15:19:00 | 显示全部楼层
本帖最后由 临时号 于 2022-7-13 16:36 编辑
aniceguy 发表于 2022-7-13 15:08
问题解决了,非常感谢

能麻烦简单解释一下原因吗,多谢了


好像是缺少libncursesw.so.5这个库,其他我就不知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-7-13 16:19:08 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2022-7-13 18:16 编辑
aniceguy 发表于 2022-7-13 15:08
问题解决了,非常感谢

能麻烦简单解释一下原因吗,多谢了


        linux 系统的 .so 文件是动态库(也叫共享库),相当于 Windows 系统下的 dll 文件,我们编写 C 语言代码往往需要用到一些现成的函数,这些函数有些是由 C 语言系统提供的,有些是由第三方代码库提供的,代码编译的时候,可以选择静态连接或动态连接,其中,静态连接就是把被调用函数的代码直接写入可执行文件,使被调用函数成为可执行文件本身的一部分;动态连接就是被调用函数驻留在动态库中,代码编译时,包含被调用函数的动态库信息被写入可执行文件,当程序运行的时候,相关的动态库会被操作系统自动加载到内存,为程序运行提供支撑。这个 "libncursesw.so.5" 就是 "vim_test_linux" 运行需要依赖的一个动态库文件,缺少了这个库,"vim_test_linux" 就不再是一个完整的程序文件了。
        在 linux 系统下,每一个程序都必须和操作系统打交道,操作系统函数都位于动态库内,所以,每一个可执行程序都必须依赖动态库。
        在“vim_test_linux” 的所在目录内,键入命令:
ldd vim_test_linux
        可以查看 “vim_test_linux” 依赖的所有动态库的列表。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-7-19 09:38:07 | 显示全部楼层
jackz007 发表于 2022-7-13 16:19
linux 系统的 .so 文件是动态库(也叫共享库),相当于 Windows 系统下的 dll 文件,我们编写  ...

非常感谢!抱歉这几天没办法回复。
感谢回答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-19 10:02:46 | 显示全部楼层
临时号 发表于 2022-7-13 15:19
好像是缺少libncursesw.so.5这个库,其他我就不知道了

了解了,谢谢你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-13 23:00:45 | 显示全部楼层
临时号 发表于 2022-7-13 15:00
运行:yum install xulrunner.i686
输入:y
等待安装结束再运行,试试

真的可以用,感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 21:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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