zoukankan      html  css  js  c++  java
  • aarch64-linux-gnu-gdb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

    在使用aarch64-linux-gnu-gdb调试kernel的时候,执行 aarch64-linux-gnu-gdb ./vmlinux 时,出现了如下错误:

    aarch64-linux-gnu-gdb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

    使用 ldd aarch64-linux-gnu-gdb 命令查看库的链接信息,如下:

    linux-vdso.so.1 (0x00007fff4bbe5000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7f81a73000)
    libncurses.so.5 => not found
    libtinfo.so.5 => not found
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7f81a50000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7f81901000)
    libpython2.7.so.1.0 => /lib/x86_64-linux-gnu/libpython2.7.so.1.0 (0x00007f7f8158f000)
    libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f7f81561000)
    liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f7f81538000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7f81346000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f7f81a98000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f7f8132a000)
    libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f7f81325000)

    上面信息显示 libncurses.so.5 和 libtinfo.so.5 两个动态库没有找到。

    情况一:

    这时候我们先要使用find命令在文件系统里面找一下libncurses.so.5 和 libtinfo.so.5两个动态库是否已经存在,如果不存在,系统是ubuntu的话使用 apt-cache search libncurses* 搜索一下,然后使用 apt-get install $(libname) 安装一下即可。安装完以后再使用 ldd aarch64-linux-gnu-gdb 查看所需要的库是否已经找到,如果都找到了的话,执行 aarch64-linux-gnu-gdb ./vmlinux 时应该不会报错了。

    情况二:

    如果文件系统里libncurses.so.5 和 libtinfo.so.5 两个动态库已经存在,但是执行 ldd aarch64-linux-gnu-gdb 依然提示没有找打的话,那应该是文件系统里libncurses.so.5 和 libtinfo.so.5两个动态库的路径没有在环境变量LD_LIBRARY_PATH里,有两种方法解决这个问题。

    方法一:

      也是最简单的方法,就是把libncurses.so.5* 和  libtinfo.so.5* 拷贝到上面执行 ldd aarch64-linux-gnu-gdb 时显示被找到的库的目录下,我的机器上如上图所示是 /lib/x86_64-linux-gnu/目录。这种方法是一劳永逸的。

    方法二:

      把libncurses.so.5* 和  libtinfo.so.5* 动态库所在的目录添加到环境变量LD_LIBRARY_PATH里。

    export LD_LIBRARY_PATH=/path_to_lib/:/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH

    path_to_lib是文件系统中libncurses.so.5* 和  libtinfo.so.5* 所在的路径, /lib/x86_64-linux-gnu是aarch64-linux-gnu-gdb所依赖的并且已经找到的其他库的路径。

      

  • 相关阅读:
    【ybtoj高效进阶 21173】简单区间(分治)
    【ybtoj高效进阶 21170】投篮训练(贪心)(线段树)(构造)
    【ybtoj高效进阶 21172】筹备计划(线段树)(树状数组)
    【ybtoj高效进阶 21168】打字机器(Trie树)(LCA)(值域线段树)
    【ybtoj高效进阶 21169】毁灭计划(分类讨论)(树形DP)
    【ybtoj高效进阶 21167】旅游计划(基环树)(DP)(单调队列)
    Day-15 面向对象02 成员
    Day-14 初识面向对象
    Day 13 内置函数(点击网址进入思维导图)、递归、二分法
    Day12 生成器函数-推导式
  • 原文地址:https://www.cnblogs.com/wanglouxiaozi/p/14987053.html
Copyright © 2011-2022 走看看