编译报错error while loading shared libraries找不到libsigsegv.so.2解决思路

2023-11-17

笔者在Ubuntu交叉编译openwrt系统时,遇到了错误error while loading shared libraries,提示找不到libsigsegv.so.2这个库,而且是makefile在执行awk这个指令时报的错。

分析过程如下:
1、首先先用whereis和find,看看系统中有没有这个库,结果发现是有的。于是按照网上的通用做法,修改了/etc/ld.so.conf的路径,包含了这个库,编译,发现失败。

2、于是检查awk,awk是Linux自带的指令,我把makefile中的这条awk指令拿出来单独执行,是没有问题的,所以应该不是awk指令的问题。

3、然后用ldd查看awk用到的库,发现awk有用到这个libsigsegv.so.2,而这个库是在/usr/lib/x86_64-linux-gnu下,随后用file 查看libsigsegv.so.2,发现这个库是软连接到同路径下的libsigsegv.so.2.0.5,再file libsigsegv.so.2.0.5,发现这是一个x86-64的库。

4、随后,机缘巧合下,把libsigsegv.so.2的路径 /usr/lib/x86_64-linux-gnu,用LD_LIBRARY_PATH设置了一下动态库路径

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

发现报错,这次报的是ELFCLASS64,搜了一下大概是在64位系统上以32位编译的意思。随即就想到是不是64位的原因。

至此,小结一下,报错找不到这个libsigsegv.so.2库,但是库是存在的,而且库的路径是有设进动态加载库路径,也就是说如果真的是用到这个库,应该不会有问题。

5、随后在能编得过的服务器上找这个库,发现有一个同名库,在/usr/lib/i386-linux-gnu下,随后把库搬到Ubuntu上,再修改/etc/ld.so.conf,编译,通过。

这里有一个很坑的点,就是如果只修改/etc/ld.so.conf的路径,他是不会报ELFCLASS64这个错的,如果不是恰巧修改了LD_LIBRARY_PATH,强行指定了库的路径,不知还要研究多久。

另外,笔者在编译这个openwrt系统遇到这个问题之前,遇到了个问题,就是在makefile中检查make -v 和git --version的版本,编译检查不通过,但是手动查询版本是符合条件的,而且把编译检查命令打印出来还没打印,就感觉很玄学,后来强行修改了检查条件才通过。

后来,移植了32位库后,发现这个报错没有了,所以以后如果遇到在交叉编译时,发现一些系统命令或者路径依赖,正常使用没问题,但是交叉编译有问题,可以想一想是不是32位或者64位的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

编译报错error while loading shared libraries找不到libsigsegv.so.2解决思路 的相关文章

  • 正则表达式删除块注释也删除 * 选择器

    我正在尝试使用 bash 从 css 文件中删除所有块注释 我有以下 sed 命令的正则表达式 sed r s w s w d 这可以很好地去除块注释 例如 This is a comment this is another comment
  • 如何在线程创建和退出时调用函数?

    include
  • 为什么 fork 炸弹没有使 android 崩溃?

    这是最简单的叉子炸弹 我在许多 Linux 发行版上执行了它 但它们都崩溃了 但是当我在 android 终端中执行此操作时 即使授予后也没有效果超级用户权限 有什么解释为什么它没有使 Android 系统崩溃吗 一句话 ulimit Li
  • 如何在不使用 IDE 的情况下在 Linux 上运行 Java 项目

    我是 Java 新手 基本上 我开发了一个java项目 其中包含Eclipse中的多个Java包 该项目在我安装了 redhat Linux 的桌面上运行正常 然而 我需要在一个更强大的没有安装X11的Linux服务器 redhat ent
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • 在内核代码中查找函数的最佳方法[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我开始浏览内核代码 遇到的一件事是如何跟踪函数调用 结构定义等 有没有一种好的方法可以快速跳转到函数定义并退出 我尝试过 Source N
  • 执行命令而不将其保留在历史记录中[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在进行软件开发时 经常需要在命令行命令中包含机密信息 典型示例是将项目部署到服务器的凭据设置为环境变量 当我不想将某些命令存储在命令历史记
  • 为什么 Linux 没有 DirectX API?

    在考虑现代显卡的 Windows 系统上 DirectX API 的驱动程序端实现时 我想知道为什么此实现在非 Windows 系统 尤其是 Linux 上不可用 由于明显缺乏此功能 我只能假设有一个我无视的充分理由 但在我的原始理解中 我
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h
  • 如何阻止ubuntu在使用apt安装或更新软件包时弹出“Daemons using outdatedlibraries”? [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我最近新安装了 Ubuntu 22 04 LTS 我发现每次使用 apt 安装或更新软件包时 它都会询问我有关Which servic
  • GMail 421 4.7.0 稍后重试,关闭连接

    我试图找出为什么它无法使用 GMail 从我的服务器发送邮件 为此 我使用 SwiftMailer 但我可以将问题包含在以下独立代码中
  • C 语言的符号表

    我目前正在开发一种执行模式匹配的静态分析工具 我在用Flex https github com westes flex生成词法分析器 我编写了代码来管理符号表 我不太有经验C 所以我决定将符号表实现为线性链表 include
  • CMake 链接 glfw3 lib 错误

    我正在使用 CLion 并且正在使用 glfw3 库编写一个程序 http www glfw org docs latest http www glfw org docs latest 我安装并正确执行了库中的所有操作 我有 a 和 h 文
  • 如何让R使用所有处理器?

    我有一台运行 Windows XP 的四核笔记本电脑 但查看任务管理器 R 似乎一次只使用一个处理器 如何让 R 使用全部四个处理器并加速我的 R 程序 我有一个基本系统 我使用它在 for 循环上并行化我的程序 一旦您了解需要做什么 此方
  • 使用包管理器时如何管理 Perl 模块?

    A 最近的问题 https stackoverflow com questions 397817 unable to find perl modules in intrepid ibex ubuntu这让我开始思考 在我尝试过的大多数 Li
  • Bash - 在与当前终端分开的另一个终端中启动命令的新实例

    我有一个简单的 bash 脚本 test sh 设置如下 bin bash args if args 0 check capture then watch n 1 ls lag home user capture0 watch n 1 ls
  • 如何使用waf构建共享库?

    我想使用构建一个共享库waf http code google com p waf 因为它看起来比 GNU 自动工具更容易 更简洁 到目前为止 我实际上有几个与我开始编写的 wscript 有关的问题 VERSION 0 0 1 APPNA
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对

随机推荐

  • Python的十二道编程题,码住战胜一切

    一 计算文件大小 import os def get size path size 0 l path while l path l pop lst os listdir path for name in lst son path os pa
  • Visuial Studio 打开 Unity 新建脚本时,新脚本继承MonoBehaviour暂时失效为白色的解决方法

    点击 文件 gt 最近使用的项目和解决方案 gt 点击当前项目 即可瞬间重载当前项目 这个时候 白色的MonoBehaviour会变成绿色 就可以了 当然最传统的方法就是关掉VS再打开 不过挺浪费时间的
  • umijs框架加载cesium

    创建umi项目 yarn create umi 选择app 选择是否使用typescript N 选择依赖 yarn yarn start 项目创建完成后 添加cesium yarn add cesium 下载版本是1 67 不同版本配置方
  • 【Android】替换系统默认字体

    android系统默认字体分类 DroidSans ttf 系统默认英文字体 DroidSans Bold ttf 系统默认英文粗字体 DroidSansFallback ttf 系统默认中文字体 为系统新增字体 1 复制字体到framew
  • python机器学习之支持向量机——线性SVM决策过程的可视化案例

    线性SVM决策过程的可视化 1 导入需要的模块 from sklearn datasets import make blobs from sklearn svm import SVC import matplotlib pyplot as
  • QT中on_pushButton_clicked()用法

    在Qt里按钮控件默认对应一个on pushButton clicked 成员 如果想用点击信号 在代码中实现on pushButton clicked 成员即可 最近看了一段代码 里面并没有connect函数 只定义了pushbutton
  • 互联网编程之多线程/线程池TCP服务器端程序设计

    目录 需求 多线程TCP服务器 线程池TCP服务器 测试 日志模块 需求 多线程TCP服务器 30分 设计编写一个TCP服务器端程序 需使用多线程处理客户端的连接请求 客户端与服务器端之间的通信内容 以及服务器端的处理功能等可自由设计拓展
  • 若依框架注册新用户同时设置默认角色

    前提 开启注册 环境 ruoyi vue 3 8 5 如使用其他版本的ruoyi框架 操作可能不相同 操作 1 ruoyi system src main java com ruoyi system service impl SysUser
  • 【算法】离散傅里叶变换(DFT)

    真实的系统是会离散的 时变的 理想者将瞬时态看成时线性的系统 将时变系统分成了不同阶段 离散在围观层面是连续的 但从表层感受时 变化是迅猛的 可以忽略不计变化的过程 因而成为了离散 一 离散系统 离散控制系统是指在控制系统的一处或数处信号为
  • 排座位(并查集)

    如果这一题蛮力求解 会很复杂 关系网都能把自己弄晕 所以采取简化的算法 并查集 所以你需要弄清楚并查集算法 概念 即支持对集合进行合并和查询的一个数据结构 合并 将元素a和元素b所在的集合合并成一个集合 查询 查询a和b是否为同一集合 如图
  • 刷题之搜索插入位置

    给定一个排序数组和一个目标值 在数组中找到目标值 并返回其索引 如果目标值不存在于数组中 返回它将会被按顺序插入的位置 请必须使用时间复杂度为 O log n 的算法 来源 力扣 LeetCode 链接 https leetcode cn
  • (matlab实现)sigmoid函数和tanh函数以及ReLU函数

    1 logsig函数即是logistic Regression 逻辑回归 中的sigmoid函数 logsig函数表达式为 matlab实现 figure NumberTitle off Name Sigmoid函数 x 10 0 1 10
  • 香港服务器速度快的原因

    香港服务器速度快的原因 BGP线路简单来说就是将电信 联通 移动等多家运营商的网络融合在一起的线路 一 区别于三线带宽 BGP线路为多线单IP 利用特定的路由器做自动解析 然后通过每个供应商独有的AS号来实现互联互通 在访问速度方面比三线三
  • svm 支持向量机 回归 预测_SVM(支持向量机)

    1 什么是SVM 首先支持向量机不是一种机器 而是一种机器学习算法 是一种监督学习算法 用来解决分类问题的 支持向量又是啥意思 通俗的理解就是 分类器中最靠近决策边界 Logistic回归里面提到过决策边界的概念 的那些点 也就是对决策边界
  • LeetCode:动态规划中的子序列问题

    PS 本文是参考代码随想录做的一些笔记 完整版本请戳链接 非常好的教程 本文列举了一些经典题目 特别是编辑距离 基本上的题目解题思路都是一样的 可以说是一个路子 300 最长递增子序列 给你一个整数数组 nums 找到其中最长严格递增子序列
  • 基础学习----对于我来说一些基础引脚知识

    1 BOOT BOOT 引脚可以配置为不同的状态 以决定芯片在启动时从哪个存储器中加载程序或固件 具体来说 BOOT 引脚有两个状态 BOOT0 这是一个普通输入 输出引脚 用于配置芯片的启动模式 当 BOOT0 引脚为低电平时 芯片将从
  • 从Dialog管理谈到Vue渲染原理

    作为一个中后台表单 表格工程师 经常需要在一个页面中处理多个弹窗 我自己的项目中 一个复杂的审核页面中的弹窗数量超过了30个 如何管理大量的弹窗就成为了一个需要考虑的问题 大量的弹窗有什么问题 假设你有一个弹窗组件 类似于element u
  • 玩以太坊链上项目的必备技能(类型-引用类型-Solidity之旅三)

    在前文我们讲述了值类型 也就说再修改值类型的时候 每次都有一个独立的副本 如 string 类型的状态变量 其值是无法修改 而是拷贝出一份该状态的变量 将新值存起来 对于处理稍微复杂地值类型时 拷贝将变得愈发大了 也正是介于此 才考虑到将数
  • 数据库错误Warning in ./libraries/config/FormDisplay.php#661

    宝塔面板的phpMyAdmin目录为 www server phpmyadmin 然后搜索 FormDisplay php 在661行将continue改为break 保存 关闭 重新打开phpMyAdmin 宝塔面板 数据库 管理 ok
  • 编译报错error while loading shared libraries找不到libsigsegv.so.2解决思路

    笔者在Ubuntu交叉编译openwrt系统时 遇到了错误error while loading shared libraries 提示找不到libsigsegv so 2这个库 而且是makefile在执行awk这个指令时报的错 分析过程