【Embedded Development】 Keil或IAR如何制作静态库并装载入Keil或IAR工程当中进行编译烧录之库封装——lib库的生成

前言

注意就像windows和linux平台中编译的库文件是不通用的,则使用一个arm gcc编译出来的库要在对应的arm gcc系列的工程中使用这个库。

一、Keil的库封装

1.1 准备好要制作一个静态库的对应的c文件和h文件

cpp 复制代码
#ifndef __SIMPLE_LIB_H__
#define __SIMPLE_LIB_H__

// 加法
int add(int a, int b);

// 减法
int subtract(int a, int b);

// 乘法
int multiply(int a, int b);

// 除法 (注意:调用者需保证除数不为0,或在函数内处理)
int divide(int a, int b);

#endif /* __SIMPLE_LIB_H__ */
cpp 复制代码
#include "simple_lib.h"

// 加法实现
int add(int a, int b) {
    return a + b;
}

// 减法实现
int subtract(int a, int b) {
    return a - b;
}

// 乘法实现
int multiply(int a, int b) {
    return a * b;
}

// 除法实现
int divide(int a, int b) {
    // 安全检查:防止除数为0导致程序崩溃
    if (b == 0) {
        // 实际项目中,这里可以返回特定的错误码或全局错误变量
        return 0; 
    }
    return a / b;
}

1.2 建立一个keil空的工程(如果库代码和处理器的库函数无关,则处理器型号选哪个都可以)

1.3 将其c文件和h文件加入keil的工程当中,然后如果是只有一个c文件可以不用在魔法棒中添加h文件的路径,但是如果是有引用外部的文件需要添加头文件的路径

1.4 keil环境下Lib库的生成,打开魔法棒在output中设置为输出结果是lib库文件,选择创建lib文件则不会输出hex文件

1.5 默认输出位置在objects中

1.6 演示如何使用该simple_lib库,创建一个正常的STM32的工程,然后将库,像c文件一样加入到工程当中,然后一定添加头文件路径,库的头文件一定要对应库

编译未报错,则成功

二、IAR的库封装

2.1 准备库的c文件和头文件

2.2 使用一个正常的基于GD32的IAR工程,将c文件和头文件加入工程结构中,同时屏蔽其他文件,右键文件或者文件夹的options,options的左上角勾选上Exclude from build,从而不编译其他文件,点ok

2.3 设置整个工程为输出库,而不是正常的编译模式,右键总工程图标,进入options的General Options,然后进入其output,选lib模式。同时,再进入左侧的Library Builder选项卡,设置输出库的具体文件夹路径,注意IAR默认的库是.a结尾,记得点ok

全编译

2.4 编译成功

复制一下到外部文件中

2.5 切回正常编译模式,然后,将库加入工程并进行验证,屏蔽或者移除库的c文件,记得添加库的头文件的路径到工程

2.6 补充添加库的方式有两种,一种是上一步的直接添加文件到左侧的工程结构中;二是使用工程设置中的链接选项中的library设置指定库位置,两种都使用会导致重复警告

使用工程设置中的链接选项中的library设置指定库位置

2.7 全编译成功,则为成功使用了库文件simple_lib.a

相关推荐
bingcheby18 天前
PS通过AXI总线控制PL的LED灯实验之四---编程下载调试
驱动开发·fpga开发·iar
Ronin-Lotus1 个月前
蓝桥杯篇---EEPROM内部存储地址
职场和发展·蓝桥杯·c·eeprom·keil
潘潘的嵌入式日记2 个月前
改完Keil工程文件被缓存覆盖?——uvprojx编辑的进阶四坑
xml·嵌入式·keil·调试·mdk·工程文件
木子单片机2 个月前
基于51单片机的音乐彩灯设计
单片机·嵌入式硬件·51单片机·keil
IAR Systems3 个月前
在IAR工具链中使用overlay命令进行SMP多核工程TCM配置
arm开发·嵌入式·嵌入式开发·iar
IAR Systems3 个月前
使用IAR Arm工具链开发和调试Zephyr RTOS
arm开发·嵌入式·iar·zephyr
咖喱年糕3 个月前
KEIL5 编译错误解决:MDK 5.37 及以上版本添加 AC5(ARM Compiler 5)编译器
arm开发·单片机·keil·嵌入式软件·ac5
少年、潜行3 个月前
IAR FOR ARM 历史版本安装包、安装、注册流程【百度网盘资源】
arm开发·iar·iar历史版本·iar安装