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

没有调用memcpy却报了undefined reference to memcpy错误

现象

在第5行出现了,undefined reference to `memcpy’

1 static void printf_x(unsigned int val)
2{
3    char buffer[32];
4    const char lut[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
5    char *p =  buffer;
6    while (val || p == buffer) {
7        *(p++) = lut[val & 0x0000000F];
8        val = val >>4 ;
9    }
10    while (p != buffer)
11        printf_c(*(--p));
12}

本质原因

编译器会隐式地调用memcpy`函数,尤其是涉及到内存复制或者结构体操作时。
在你的代码中,虽然看起来没有显式调用 memcpy 函数,但可能有一些间接的调用或者编译器生成的代码引用了 memcpy,
例如:
1.字符串处理函数: 某些编译器在处理字符串时会调用 memcpy,尽管你的代码中没有直接调用字符串函数。
2.结构体复制: 如果你在其他地方使用了结构体,特别是复制结构体时,编译器可能会转换为 memcpy 的调用。
3.优化问题: 某些优化级别下,编译器可能会重新组织代码,引入 memcpy 来优化内存操作。

解决方法

检查编译器选项,确认是否正确链接了标准库。
在这里插入图片描述

http://www.lryc.cn/news/390252.html

相关文章:

  • import和require的区别
  • 白骑士的Python教学高级篇 3.3 数据库编程
  • macOS 安装redis
  • 【AIGC评测体系】大模型评测指标集
  • 工厂模式之简单工厂模式
  • 2.(vue3.x+vite)调用iframe的方法(vue编码)
  • 实战项目——用Java实现图书管理系统
  • 利用DeepFlow解决APISIX故障诊断中的方向偏差问题
  • sqlalchemy获取数据条数
  • SpringBoot的自动配置核心原理及拓展点
  • 用随机森林算法进行的一次故障预测
  • 24位DAC转换的FPGA设计及将其封装成自定义IP核的方法
  • 【大模型LLM面试合集】大语言模型基础_llm概念
  • Qt时间日期处理与定时器使用总结
  • 数据结构——Hash Map
  • 剪画小程序:视频剪辑-视频播放倍数的调整与应用
  • 使用 Java Swing 和 XChart 创建多种图表
  • 信息系统运维管理:实践与发展
  • html+js+css登录注册界面
  • 英伟达(NVIDIA)数据中心GPU介绍
  • Leetcode 3202. Find the Maximum Length of Valid Subsequence II
  • 通过Spring Boot结合实时流媒体技术对考试过程进行实时监控
  • 智能扫地机器人避障与防跌落问题解决方案
  • 德旺训练营称重问题
  • 数据决策系统详解
  • JSON 简述与应用
  • ResNet50V2
  • 基于深度学习的虚拟换装
  • 单段时间最优S型速度规划算法
  • pom文件-微服务项目结构