Keil 5下出现Error: L6218E: Undefined symbol Delay(unsigned) (referred from main.o).的解决方法

news/2025/2/5 6:55:26/

问题背景:

        今天在给stm32f407vgt6点灯时,想实现循环闪烁,于是想从以前的工程中移植一个delay延时函数,移植后编译时发现出现错误:

Error: L6218E: Undefined symbol Delay(unsigned) (referred from main.o).的解决方法

解决过程的思考: 

        在确定了头文件Include路径的包含和.c文件的添加后,想起之前用C++实现STM32F103C8T6串口字符输出看过的一篇文章,文中提到一个工程中含有.cpp文件和.c文件混合实现时,在文件类型是C++的main.cpp下 所有用C语言实现的模块,添加.h时要加上

extern "C"

{

        #include"xxx.h"                //xxx代表文件名 ,根据实际修改               

}

且文章的作者多次强调extern"C"

解决方法:

        原来包含的头文件如下,此处delay.c是用C语言实现,这种情况下会出现标题中的错误:

 需要修改为如下:

 

再次编译,完美解决。

总结:

        在C++工程中想加入C语言实现的模块,在包含头文件时,需添加extern"C"{ xxx.h }。


http://www.ppmy.cn/news/214221.html

相关文章

【ubuntu】vim安装python自动补全插件(2)

按照上一篇的步骤安装插件&#xff0c;结果出现了几个问题 (1)无法识别标签命令&#xff1a; Error detected while processing /usr/share/vim/vimrc: line 57: E475: Invalid argument: on line 65: E492: Not an editor command: <a0><a0><a0> line…

怎样修改一个正在运行的soket的端口

0、目录 整体架构目录&#xff1a;ASP.NET Core分布式项目实战-目录 在开发项目的过程中&#xff0c;我新创建了一个controller&#xff0c;发现vs会给我们直接在controller头添加前缀&#xff0c;比如[Route("api/[controller]")],即在访问接口的时候会变成http://l…

git/github使用完整教程(1)基础

安装git 在Linux上安装Git 首先输入git&#xff0c;看看系统有没有安装Git&#xff1a; $ git The program git is currently not installed. You can install it by typing: sudo apt-get install git像上面的命令&#xff0c;有很多Linux会友好地告诉你Git没有安装&#x…

STM32L475裸机例程学习 定时器中断和PWM输出实验

定时器中断和PWM输出实验 所以阿…笔记的重要性哇&#xff01;之前看过的内容在做后面的内容涉及到了发现没有笔记&#xff0c;看的时间太久远&#xff0c;竟然全部忘记了&#xff0c;真是个悲伤的故事:( 那就重来吧。由于这两个实验都跟TIM定时器关联性很大&#xff0c;就合…

vim语法高亮的错误解决办法

如果在使用vim的语法高亮显示有如下错误时 第 19 行: E33: 没有前一个替换正则表达式 E475: 无效的参数: cBinaryOperator display "/~" 第 20 行: E33: 没有前一个替换正则表达式 E475: 无效的参数: cBinaryOperatorError display "/~" 解决方法如下&am…

联想笔记本无法识别USB(通用串行总线(USB)的控制器问题)

首先&#xff0c;我尝试用360驱动大师和驱动人生&#xff0c;更新USB3.0驱动&#xff0c;但是都是提示安装失败&#xff0c;失败的原因是无法找到通用串行总线控制器。同时&#xff0c;我也计划安装通用串行总线控制器&#xff0c;发现网上少之又少&#xff0c;没有这驱动下载。…

475手操器在使用过程中的讲解

在475手动机械手的应用中&#xff0c;当每个点与压力值不对应时&#xff0c;需要进行精度验证。如何对475手动机械手各点及压力值进行精度验证&#xff1f;我们接下来介绍你。 在实际使用中&#xff0c;通常需要检查475手操器的各点压力值是否准确&#xff0c;若某点值不准确&…

.htaccess文件上传解析漏洞

测试环境 upload-labs靶场&#xff08;Pass-04&#xff09; .htaccess原理 .htaccess文件是Apache服务器下的一个配置文件。其主要负责相关目录下的网页配置&#xff0c;即&#xff1a;在一个特定的文档目录中放置一个包含一个或多个指令的文件来对网页进行配置。 不过需要…