【编译器】KEIL 静态链接库和动态链接库

news2024/11/27 12:37:43

【编译器】KEIL 静态链接库和动态链接库


文章目录

    • @[TOC](文章目录)
  • 前言
  • 一、工程1——生成静态链接库
    • 1. 代码准备
    • 2. 生成lib文件
  • 二、工程2——调用静态链接库
    • 1.添加.h文件路径
    • 2. 调用生成的lib文件
  • 三、参考资料
  • 总结

前言

在这里插入图片描述


提示:以下是本篇文章正文内容,下面案例可供参考

一、工程1——生成静态链接库

1. 代码准备

.c

#include "delay.H"

void delay_ms(unsigned int x) 
{  
	unsigned int j,i;   
	for(j=0;j<x;j++)   
	{    
		for(i=0;i<1100;i++);   
	}  
}

.h

void delay_ms(unsigned int x) ;

2. 生成lib文件

在这里插入图片描述
在这里插入图片描述

二、工程2——调用静态链接库

1.添加.h文件路径

在这里插入图片描述

2. 调用生成的lib文件

屏蔽原来的函数

/**************************************************************************************
ʵÑéÏÖÏó£ºÏÂÔسÌÐòºó"LED&½»Í¨µÆÄ£¿é"µÄD1ָʾµÆÉÁ˸
½ÓÏß˵Ã÷£º STC8Aµ¥Æ¬»ú-->LED&½»Í¨µÆÄ£¿é
		   P00-->D1	
×¢ÒâÊÂÏUSBÁ¬½ÓÏ߸ø¿ª·¢°åͨµçÏÂÔسÌÐò£¬STCÏÂÔØÈí¼þÖÐÄÚ²¿IRCʱÖÓÑ¡Ôñ11.0592MHZ																				  
***************************************************************************************/


#include "STC8.H"

#include "delay.H"

#define MAIN_Fosc		11059200L	//¶¨ÒåÖ÷ʱÖÓ
#define  uint16   unsigned int  
#define  uint8    unsigned char  

/**********************
Òý½Å±ðÃû¶¨Òå
***********************/			
sbit led1=P0^0;     //ÓÃIO¿ÚP00
 
/**************************************
¹¦ÄÜÃèÊö£ºÑÓʱº¯Êý
Èë¿Ú²ÎÊý£ºuint16 x £¬¸ÃֵΪ1ʱ£¬ÑÓʱ1ms
·µ»ØÖµ£ºÎÞ
***************************************/
//void delay_ms(uint16 x) 
//{  
//	uint16 j,i;   
//	for(j=0;j<x;j++)   
//	{    
//		for(i=0;i<1100;i++);   
//	}  
//}

/***********************
¹¦ÄÜÃèÊö£ºÖ÷º¯Êý
Èë¿Ú²ÎÊý£ºÎÞ
·µ»ØÖµ£ºÎÞ
************************/
int main()
{
  P0M1 &= 0xFE;	P0M0 &= 0xFE;	  //ÉèÖÃP0.7Ϊ׼˫Ïò¿Ú

  while(1)
  {
		led1=0;	      //µãÁÁD1ָʾµÆ
		delay_ms(500);
		led1=1;	      //ϨÃðD1ָʾµÆ
		delay_ms(500);
	}
}

编译通过
在这里插入图片描述

三、参考资料

Keil的lib生成个人总结
静态链接库和动态链接库
C语言----静态链接库和动态链接库
MDK KEIL程序代码编译成静态库文件及库引用笔记教程
基于keil下的多文件夹打包生成LIB库的操作步骤

总结

本文仅仅简单介绍了【编译器】KEIL 静态链接库和动态链接库,评论区欢迎讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2233595.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】编辑器vim 与 编译器gcc/g++

目录 一、编辑器vim&#xff1a; 1、对vim初步理解&#xff1a; 2、vim的模式&#xff1a; 3、进入与退出&#xff1a; 4、vim命令模式下的指令集&#xff1a; 移动光标&#xff1a; 删除&#xff1a; cv&#xff1a; 撤销&#xff1a; 其他&#xff1a; 5、vim底行模…

成都栩熙酷网络科技有限公司抖音小店电商新篇章

在数字经济蓬勃发展的今天&#xff0c;电子商务行业迎来了前所未有的发展机遇。而在这股浪潮中&#xff0c;成都栩熙酷网络科技有限公司&#xff08;以下简称“栩熙酷”&#xff09;凭借其敏锐的市场洞察力和强大的技术实力&#xff0c;与抖音小店这一新兴电商平台携手共进&…

科研绘图系列:R语言组合连线图和箱线图(linechart+boxplot)

文章目录 介绍加载R包数据数据预处理画图1画图2系统信息介绍 连线图(Line Chart)是一种常用的数据可视化图表,它通过将一系列数据点用直线段连接起来来展示数据随时间或有序类别变化的趋势。以下是连线图可以表示的一些内容: 时间序列数据:展示数据随时间变化的趋势,例如…

征程 6 工具链性能分析与优化 2|模型性能优化建议

01 引言 为了应对低、中、高阶智驾场景&#xff0c;以及当前 AI 模型在工业界的应用趋势&#xff0c;地平线推出了征程 6 系列芯片。 在软硬件架构方面&#xff0c;征程 6 不仅保持了对传统 CNN 网络的高效支持能力&#xff0c;还强化了对 Transformer 类型网络的支持&#xf…

HarmonyOS第一课 07 从网络获取数据-习题

判断题 1. 在http模块中&#xff0c;多个请求可以使用同一个httpRequest对象&#xff0c;httpRequest对象可以复用&#xff1a;F 正确(True) 错误(False) 每次请求时,都需要一个新的httpReq对象 每次使用完,都需要destory对象 2. 使用on(type: headersReceive)订阅响应头事…

Kubernetes——part10-1 kubernetes日志收集方案 ELK

一、为什么收集日志 收集日志可以用于&#xff1a; 分析用户行为监控服务器状态增强系统或应用安全性等。 二、收集哪些日志 kubernetes集群节点系统日志kubernetes集群节点应用程序日志kubernetes集群中部署的应用程序日志 三、日志收集方案 3.1 日志收集技术栈ELK(ELKB…

windows MySQL报错Packet for query is too large问题解决

1、报错 Packet for query is too large (1626 > 1024). You can change this value on the server by setting the max_allowed_packet variable.出现问题的原因&#xff1a;批量插入数据量过大 MySQL根据配置文件会限制Server接受的数据包大小。有时候插入、更新或查询时…

dns服务部署

1.搭建dns服务器能够对自定义的正向或者反向域完成数据解析查询。 2.配置从DNS服务器&#xff0c;对主dns服务器进行数据备份。 第一步&#xff0c;安装bind服务以及关闭防火墙等 正反向解析 [rootlocalhost ~]# vim /var/named/named.openlab.com ------正向资源记录文件 …

ElMessageBox 内容自定义

1. ElmessageBox弹出框显示内容设置字体颜色&#xff1a; 代码内容&#xff1a; const saveToGroup (row: Customers) > {ElMessageBox.confirm(h("i",{ style: "color: #409EFF" },"未建档客户公司无法创建线索/商机/礼品申请。"),"…

学Linux的第五天

目录 命令解释器-shell-负责解析用户输入的命令 分类&#xff1a; type --查看命令是内置命令、外置命名、alias命令 注意 Linux 中的特殊符号 拓展 命令别名aliasalias 别名原命令 - 参数 常用的别名untar&#xff0c;wget,getpass,ping,speed,ipe,c 删除别名unalias…

JavaEE初阶---servlet篇(二)(smartTomcat的使用相关错误类型)

文章目录 1.servlet创建项目问题说明2.SamrtTomcat插件3.乱码问题的说明4.其他的错误类型说明4.1常见错误之4044.2常见错误之4054.3常见错误之5004.4空白页面/无法访问 1.servlet创建项目问题说明 servlet进行这个项目创建的时候&#xff0c;我们的这个web.xml里面的这个内容就…

Centos 网络接口打vlan标签

Centos 网络接口打vlan标签 本次使用给bond打vlan标签&#xff0c;其实其他普通接口也一样 Centos创建bond前需要关闭NetworkManager [root192 network-scripts]# systemctl disable NetworkManager --now Removed symlink /etc/systemd/system/multi-user.target.wants/Netwo…

使用Docker-Compose安装redis,rabbitmq,nacos,mysql,nginx,tomcat,portainer组件教程

因为开发经常会用到一些组件&#xff0c;又不想在本地启动&#xff0c;所以买了个服务器&#xff0c;然后将这些组件都安装到服务器上以便开发使用。下面就记录下使用docker-compose安装组件的教程以及一些需要注意的地方。 关于docker和docker-compose的安装在另一篇博客中有…

WPF+MVVM案例实战(二十二)- 制作一个侧边弹窗栏(CD类)

文章目录 1、案例效果1、侧边栏分类2、CD类侧边弹窗实现1、样式代码实现2、功能代码实现3 运行效果4、源代码获取1、案例效果 1、侧边栏分类 A类 :左侧弹出侧边栏B类 :右侧弹出侧边栏C类 :顶部弹出侧边栏D类 :底部弹出侧边栏2、CD类侧边弹窗实现 1、样式代码实现 在原有的…

解决 “Error: listen EACCES: permission denied 0.0.0.0:80“ 错误

前言 在开发过程中&#xff0c;我们经常会遇到各种各样的错误。其中一个常见的错误是 Error: listen EACCES: permission denied 0.0.0.0:80。这个错误通常发生在尝试启动一个开发服务器时&#xff0c;服务器试图绑定到80端口&#xff0c;但由于权限不足而失败。本文将详细介绍…

国产之光-海豚调度器的入门知识篇

目录 概念和定义 核心特性 核心组件 工作流程 环境准备 系统软件方面 硬件方面 部署方式 单机模式 伪集群模式 集群模式 基本配置 工作流定义 调度管理 定时调度 手动调度 监控告警 任务类型扩展 资源管理 权限控制 概念和定义 Apache DolphinScheduler是一…

使用Netty实现一个简单的聊天服务器

✅作者简介&#xff1a;热爱Java后端开发的一名学习者&#xff0c;大家可以跟我一起讨论各种问题喔。 &#x1f34e;个人主页&#xff1a;Hhzzy99 &#x1f34a;个人信条&#xff1a;坚持就是胜利&#xff01; &#x1f49e;当前专栏&#xff1a;Netty &#x1f96d;本文内容&a…

新世联科技:NG2-A-7在DAC空气捕集提取CO2的应用

一、DAC空气捕集提取CO2的介绍 直接空气碳捕获&#xff08;Direct Air Capture&#xff0c;简称DAC&#xff09;是一种直接从大气中提取二氧化碳的技术。 二、DAC空气捕集提取CO2的前景 从大气中提取的这种二氧化碳可以作为循环经济的一部分以各种不同方式使用。未来&#xf…

ISUP协议视频平台EasyCVR视频融合平台接入各类摄像机的方法

安防视频监控ISUP协议视频平台EasyCVR兼容性强、支持灵活拓展&#xff0c;平台可提供视频远程监控、录像、存储与回放、视频转码、视频快照、告警、云台控制、语音对讲、平台级联等视频能力。 想要将摄像机顺利接入EasyCVR平台&#xff0c;实现视频监控的集中管理和分发&#x…

(五)Spark大数据开发实战:灵活运用PySpark常用DataFrame API

目录 一、PySpark 二、数据介绍 三、PySpark大数据开发实战 1、数据文件上传HDFS 2、导入模块及数据 3、数据统计与分析 ①、计算演员参演电影数 ②、依次罗列电影番位前十的演员 ③、按照番位计算演员参演电影数 ④、求每位演员所有参演电影中的最早、最晚上映时间及…