【openwrt】【编译问题】openwrt编译问题

2023-11-15

undefined reference to `pthread_once’

在某次openwrt编译过程中出现了undefined reference to pthread_once错误,具体报错信息如下:

openwrt/staging_dir/host/lib/libcrypto.a(libcrypto_la-eng_all.o): In function `ENGINE_load_builtin_engines':
eng_all.c:(.text+0x30): undefined reference to `pthread_once'
openwrt/staging_dir/host/lib/libcrypto.a(libcrypto_la-err.o): In function `ERR_load_ERR_strings':
err.c:(.text+0xb4e): undefined reference to `pthread_once'
openwrt/staging_dir/host/lib/libcrypto.a(libcrypto_la-err_all.o): In function `ERR_load_crypto_strings':
err_all.c:(.text+0xaf): undefined reference to `pthread_once'
openwrt/staging_dir/host/lib/libcrypto.a(libcrypto_la-c_all.o): In function `OpenSSL_add_all_ciphers':
c_all.c:(.text+0x9df): undefined reference to `pthread_once'
openwrt/staging_dir/host/lib/libcrypto.a(libcrypto_la-c_all.o): In function `OpenSSL_add_all_digests':
c_all.c:(.text+0x9ff): undefined reference to `pthread_once'
openwrt/staging_dir/host/lib/libcrypto.a(libcrypto_la-crypto_init.o):crypto_init.c:(.text+0x51): more undefined references to `pthread_once' follow
collect2: error: ld returned 1 exit status
scripts/Makefile.host:107: recipe for target 'scripts/extract-cert' failed
make[6]: *** [scripts/extract-cert] Error 1

尝试执行make clean或者make distclean重新编译均没有效果。
然后分析log发现是编译这个文件——kernel/scripts/extract-cert.c时报错,原因是找不到pthread_once函数定义(此函数定义在pthread库中)。

于是百度+Google了一圈发现有两种解法:

方法一

安装pthread并将它链接到程序。具体安装的命令是:

 sudo apt-get install manpages-posix manpages-posix-dev

安装后pthread动态库所在的路径为/usr/lib/x86_64-linux-gnu

方法二

修改kernel/scripts/Makefile

HOSTLDLIBS_extract-cert = $(CRYPTO_LIBS)  改为
HOSTLDLIBS_extract-cert = -lcrypto -pthread

但是我遇到的并非上述两种情况,因为我发现——根据我当前的配置文件,我就不应该编译kernel/scripts/extract-cert.c这个文件,也就是我当前kernel/.config并不是我预期的,所以这个问题的原因就是kernel的配置文件出现了错乱,所以解决办法也很简单:

手动去kernel目录下删除.config等所有配置文件,然后重新编译即可。

cd kernel/
rm -rf .config*

实际上,openwrt很多编译错误都是编译配置信息错乱导致的,实际编译的根本不是你预期的target,遇到这种错误应该先明确配置文件是否正常,然后再去找解决办法。

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

【openwrt】【编译问题】openwrt编译问题 的相关文章

  • 解决GO语言编译程序在openwrt(mipsle架构)上运行提示Illegal instruction问题

    RT 最近在研究openwrt mipsle架构 上运行go语言编译出来的程序 一运行就报 Illegal instruction 这样的错误 百度和Google搜索了一遍 得出两种解决方案 PS 更新一遍 当时写这个文档的时候没有发现Go
  • Openwrt编译报错 TCP Fast Open is not available for client mode 的解决办法

    报错信息 configure error TCP Fast Open is not available for client mode please rerun without enable tfo client gmake 3 Makef
  • ubuntu18.04编译Openwrt出现的问题解决

    ubuntu18 04编译Openwrt出现的问题解决 问题1 Build dependency Please install Git git core gt 1 6 5 问题2 gdate c 2497 7 error format no
  • luci的国际化(多语言)

    语言的选择在dispatch函数入口出完成 如果配置文件 etc config luci中配置的lang为auto 则根据浏览器所带的信息选择一个合适的语言 否则就使用lang定义的语言 然后使用i18n lua中的setlanguage设
  • openwrt squashfs固件解包打包与签名方法

    我们有时没有时间重新编译整个固件 但是却又想修改其中的某个功能 这时就涉及到了固件的解包与打包 下面提供一个简单的解包打包脚本 openwrt固件修改 squashfs jffs2格式固件 bin sh sudo echo Starting
  • openwrt x86 版安装纪实

    1 下载源码 已有编译环境 直接在ubuntu 中 git openwrt 源码 https dev openwrt org wiki GetSource git clone b chaos calmer git github com op
  • Openwrt GCC 7.5编译sanitizer_internal_defs.h错误

    GCC 7 5 BINUTILS 2 31 1 报错信息 sanitizer internal defs h 72 error size of array assertion failed is negative 解决方法 修改下列文件 删
  • 拔电源磁盘变成只读Read-only file system

    拔电源磁盘变成只读Read only file system 问题 查询 解决 问题 搭建openwrt的过程中 由于机器没有关机键 而且没有进行后台命令关机 直接拔电源之后 重启 任何操作都提示只读状态 那么这个时候什么都操作不了 无奈只
  • openwrt调试用到的

    PC间文件共享 python3 m http server 在共享的电脑上 打开浏览器 直接输入 serverip 8000 NFS Ubuntu PC端 sudo apt get install nfs kernel server sud
  • OpenWrt后台管理启用https-OpenSSL

    OpenWrt 默认使用http 访问管理后台 这样不安全 推荐修改为 https 访问 加密数据传输 本文介绍配置步骤 1 卸载旧的ssl软件包 root OpenWrt opkg remove luci ssl px5g px5g mb
  • OpenWRT添加模块(一)Makefile和Config.in

    第一次接触到openwrt 真是被毁三观啊 不要说makefile 连源代码在哪里都找不到 知道嵌入式系统水深 没想到迈出第一步就没过了脖子 好在旁边有人指点 直接在芯片厂商提供的既有代码上做二次开发 项目进展倒也完全满足了前期计划的目标
  • 1-OpenWrt编译过程-2

    前言 接触 op 已达四年 今年开始梳理整体所学 具体还参考了佐大的视频 对 op 缺乏系统知识的可以尝试 总体而言官方文档和源码是最好的教程 文章目录 编译OpenWrt 概述 1 更新安装所有可选的软件包 2 编译设置 make men
  • 【LEDE】树莓派上玩LEDE终极指南-75-获取CPU温度

    先来说说获取CPU温度的方法 1 通过hwmon获取 2 通过thermal获取 而树莓派就比较蛋疼了 没有额外的传感器 所以sensor detect这些东西完全不起作用 唯独CPU封装内的VideoCore具有温度传感功能 而想要与Vi
  • linux下安装awk

    sudo apt get install gawk 注意名称
  • openwrt恢复出厂设置有两种方法

    1 输入以下指令 firstboot mtd r erase rootfs data 2 输入以下指令 mount root firstboot reboot f
  • 5-Openwrt package Makefile

    Openwrt package Makefile 在 Openwrt main Makefile 章节里面有说道主Makefile会通过include package Makefile调用package下的Makefile package下
  • UCI提供给shell和lua使用的配置接口

    转自 http m blog csdn net article details id 47989493 1 uci提供给shell使用的配置借口有两套 1 config get用来读取一个config值 命令格式如下 config getv
  • 获取openwrt wan口ip方法

    2020年7月30日14点39分 更新 之前写的方法 获取的是wan口的ip和网关 使用过程发现 以有线上网模式为例 获取wan口网关时 若网关中出现连续的1 1 会获取失败 表明该正则表达式是有问题的 即下面这个grep oE 之后的内容
  • OpenWrt 学习记录

    OpenWrt 学习记录 ssh setting CodePath review Makefile CURDIR MAKEFILE LIST ssh setting keygen ssh keygen t rsa C hugh win10W
  • 安装“opkg”?

    我正在尝试将软件包安装到我的 OpenWrt SDK 中 为此 您必须通过键入以下内容来使用 OPKG 包管理器 opkg update opkg install

随机推荐

  • jquery的$().each,$.each的区别

    在jquery中 遍历对象和数组 经常会用到 each和 each 两个方法 两个方法是有区别的 从而这两个方法在针对不同的操作上 显示了各自的特点 each 对于这个方法 在dom处理上面用的较多 如果页面有多个input标签类型为che
  • 图机器学习课程笔记6

    维生素C吃多了会上火 个人CSDN博文目录 cs224w 图机器学习 2021冬季课程学习笔记集合 目录 1 思维大纲 2 中文笔记 1 思维大纲 2 中文笔记
  • 面试经典(19)--求二叉树中节点的最大距离

    题目描述 写一个程序求二叉树中相距最远的两个节点之间的距离 图3 11 A和B即为所求距离最远的两个节点 我们先作图 看能否找到规律 我们可以看到 所求的两个节点可能经过二叉树的根结点 也可能不经过二叉树的根结点 每个节点维护左右子树最大距
  • 【笔记】C++库函数——bitset

    笔记 C 库函数 bitset 看到有大佬掏出这个库函数 一愣 这绝对是未曾想象过的道路 长见识 有时候做题总能碰见稀奇古怪的库函数 每个都令我大开眼界 以后看到感兴趣的都会记录一下 感觉是个好东西 算是学习道路上的小小积累吧 抓紧记录一下
  • VSCode相对路径问题

    习惯了anaconda等环境写程序的同学 在使用VSCode时 遇到的一个问题就是相对路径问题 在anaconda中 相对路径是针对当前的文件的相对路径 在VSCode中 相对路径是针对当前项目文件夹的 如果需要将VSCode内的相对路径设
  • 对不起,其实我是.......

    大家好 最近在后台收到有同学问我 你是哪个学校的 又或者问我你今年大几了 其实 我想这些答案在大家心里面应该早已经有了答案 不过 今天说的不是这些 而是 没错 今天我来给大家推荐一款 马克思原理复习必背的小程序 由我们学校 校级组织 清泽心
  • Linux Top 命令指南

    top 命令允许用户监视 Linux 上的进程和系统资源使用情况 它是系统管理员工具箱中最有用的工具之一 并且在每个发行版中都预装了它 与 ps 等其他命令不同 它是交互式的 我们可以浏览进程列表 终止进程 等等 本文中 我们将了解如何使用
  • 倾斜摄影三维模型五种常见格式

    在倾斜摄影三维数据中 OSGB数据居多 航拍的影像经过建模软件处理产出之时 有很多成果的数据需要我们去选择输出 对于不同的项目需求 我们需要选择合适的输出数据格式 他们之间有什么区别 分别是应用在哪些个领域 今天分别以OSGB OBJ FB
  • ipsec.conf(5) - Linux man pag 中文翻译

    ipsec conf 5 Linux man page 英文网址 https linux die net man 5 ipsec conf 未经许可 禁止转载 请知悉 Name 名称 ipsec conf IPsec配置和连接 Descri
  • Java内存分配介绍

    Java内存分配为 栈 堆 方法区 本地方法栈和寄存器 字节码文件加载时进入的内存方法区 方法运行区域为栈 变量也是存储在栈中 new出来的东西会在堆内存中开辟空间并产生地址 public class ArrayDemo public st
  • esp8266-12f介绍与使用

    nodemcu 体积相对较大 而且价格也相对较高 这时候 esp12f就可以用来代替 使用 nodemcu v2 v3 使用的是esp12e 与esp12f只有布线上有所差别 是esp8266 12的增强版 esp 12F 引脚图 各个引脚
  • 成员函数在类外定义的时候,函数名为啥不能加static

    今天清理手机微信没用的数据 惊人啊 删了1G 的图 再删删其它没用的数据 腾出来3G 的空间 无意间发现了一张以前聊天时候的图 回忆了一下 当时讨论的是 为啥成员函数在类外定义时 函数名不能加static class Point publi
  • (一)python库httprunner4 用法

    4个命令 httprunner V httprunner h hrun xxx 运行yaml json pytest 会内部执行hmake hmake xxx 把yaml json格式转成pytest测试用例 一个yaml用例结构 由一个c
  • 服务器查看系统盘位置,云服务器ecs怎么查看系统盘

    云服务器ecs怎么查看系统盘 内容精选 换一换 本节介绍将Windows操作系统的KVM实例变更为擎天架构实例的操作步骤 KVM实例 参考规格清单 查询对应规格的虚拟化类型 擎天架构实例 选择 通用计算增强型C7 变更规格时不支持修改网络类
  • 小样本目标检测综述 --刘浩宇,王向军 --阅读笔记

    文章目录 1 基本背景 2 大样本与小样本的对比 3 在没有大量数据支持的情况下 小样本检测保证检测效果 有哪些解决方法 3 1 数据域 3 1 1 转化原有数据集 D t D t
  • Intel编译器的强大pragma:unroll_and_jam()/nounroll_and_jam()

    Intel官方文档 Hints to the compiler to enable or disable loop unrolling and jamming These pragmas can only be applied to ite
  • Vim快速移动光标至行首和行尾 、第一行和最后一行

    vi中跳到文件的第一行和最后一行 由于vi编辑器不能使用鼠标 所以一个大文件如果要到最后一行只用键盘下键的话会是一个很痛苦的过程 还好有各种比较快捷的方法归我们使用 1 vi 编辑器中跳到文件的第一行 a 输入 0 或者 1 回车 b 键盘
  • 如何一次性选中WORD文档中的所有表格

    1 将下面的脚本复制 Sub SelectAllTables Dim tempTable As Table Application ScreenUpdating False 判断文档是否被保护 If ActiveDocument Prote
  • B-S模式API数据传输方案

    随着面向服务技术架构的兴起 越来越多的应用系统开始进行分布式设计和部署 系统由原来的单一的技术架构变成了面向服务的多系统架构 原来在一个系统之间就可以完成的业务流程 现在要通过多系统之间的多次交互实现 那么面向服务的多系统架构之间必然有着大
  • 【openwrt】【编译问题】openwrt编译问题

    undefined reference to pthread once 在某次openwrt编译过程中出现了undefined reference to pthread once错误 具体报错信息如下 openwrt staging dir