当前位置: 首页 > news >正文

Ubuntu24.04 交叉编译libuv库(已编译好的) 之undefined reference to `pthread_getname_np‘解决

一、问题:

/opt/code/midea_gw/toolchain/cur_toolchain/toolchain-aarch64_generic_gcc-8.4.0_musl/bin/../lib/gcc/aarch64-openwrt-linux-musl/8.4.0/../../../../aarch64-openwrt-linux-musl/bin/ld: ./libuv/lib//libuv.so: undefined reference to `pthread_getname_np'
collect2: error: ld returned 1 exit status

二、查看函数定义:

在Ubuntu24.04 终端中执行:

man pthread_getname_np

可以看到其只有在特定版本 glibc 2.12

三、解决办法:

打开libuv1.x文件夹下的 src/unix/thread.c 文件,将uv__thread_getname 函数

int uv__thread_getname(uv_thread_t* tid, char* name, size_t size) {int r;char thread_name[UV_PTHREAD_MAX_NAMELEN_NP];r = pthread_getname_np(*tid, thread_name, sizeof(thread_name));if (r != 0)return UV__ERR(r);strncpy(name, thread_name, size - 1);name[size - 1] = '\0';return 0;
}

修改如下:

int uv__thread_getname(uv_thread_t* tid, char* name, size_t size) {int r;char thread_name[UV_PTHREAD_MAX_NAMELEN_NP];
#if ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 12)))r = pthread_getname_np(*tid, thread_name, sizeof(thread_name));
#endifif (r != 0)return UV__ERR(r);strncpy(name, thread_name, size - 1);name[size - 1] = '\0';return 0;
}

其作用是该函数无效,允许其编译过。

http://www.dtcms.com/a/343112.html

相关文章:

  • VMware Workstation里的Ubuntu22.04找不到共享文件夹
  • Ubuntu Server 安装 gvm 管理 Go 语言开发环境
  • 代码随想录Day58:图论(拓扑排序精讲、最短路算法dijkstra朴素版精讲)
  • Android焦点窗口变化导致遥控键值监听失效问题分析
  • AI编程避坑指南:常见错误与解决策略
  • 年化42%,最大回撤18%,卡玛比率2.3的策略可查看参数 | 全A股市场构建技术方案
  • 数据库审计是什么?主要功能详解与厂商解析
  • 第7章 区分鸟和飞机:从图像学习
  • 【网络运维】初见Shell:Shell 变量基础知识
  • Vue图解!!!Vue的生命周期管理【7】
  • MFC中使用libtorch的实例
  • 【一分钟教程】用ZMC600E实现关节机器人±180度精准转动
  • Ubuntu网络图标消失/以太网卡显示“未托管“
  • 人工智能之数学基础:随机变量和普通变量的区别?
  • 什么是测度?
  • 实践题:智能客服机器人设计
  • 魔乐开发者教程 | 基于openMind实现大模型微调指南(二):大模型微调实操
  • 图像边缘检测
  • Spring AI 入门学习指南
  • 2025.8.21总结
  • CMake使用【c/c++】
  • 2025Java面试红皮书:1000道BAT真题详解
  • plc与plc无线通讯实现PLC1200和ET200SP无线通讯解决方案实践
  • uniapp 懒加载图片
  • 力扣面试150(62/150)
  • SAP FIORI Elements深度定制:注解扩展与审批流程增强完全指南
  • 软件工程 + AI 不是 “硬凑”,3 步走通落地关键环节
  • es6新语法
  • LLaVA-3D,Video-3D LLM,VG-LLM,SPAR论文解读
  • MySQL 时间筛选避坑指南:为什么格式化字符串比较会出错?