MDK KEIL中将程序代码编译成库文件及库引用笔记教程

1、为什么要编译成库文件

        在商业性的程序代码或软件中,各种静态库、动态库是非常常见的。甚至有许多的开源程序,其开放的源码工程中,也有一些程序代码是并不对外开放的,以一个静态库或动态库和一个头文件及部分说明文件的方式提供给用户,许多的核心实现细节,我们是不能直接看到的。并且,对于已经在企业工作过的开发者,对于这种方式已经习以为常了,但是依然有许多的学生群体及初入工作岗位经验不足的开发者,对于如何将源代码编译成库文件和对库文件的重要性是比较缺少认识的。因此,整理了这篇笔记文章,并且开放出来,供博客粉丝朋友们,一起交流学习。

        将程序代码编译成库文件(Library Files)是软件开发中的一个重要步骤,主要出于以下几个原因:

        ①、代码复用

        ②、模块化开发

        ③、节省内存和磁盘空间

        ④、提高开发效率

        ⑤、便于升级维护

        ⑥、隐藏实现细节

        ⑦、保护源代码安全

2、配置MDK KEIL

        在本文的在MDK KEIL平台实现程序代码编译成库文件教程中,以小米微电机的驱动程序为例。

        为了避免在配置出现什么误操作的情况,建议将整个MDK工程文件备份一下。

①、移除无关源文件

        选中工程名,点击右键选择-->Manage Project ltems,然后选择Project Items,在该窗口中,对需要编译成库的文件进行保留,不需要去除。这一步一定要做!!!

②、移除无关头文件

        根据需要编译成库的代码头文件引用情况,将代码的头文件包含进行修改。实际测试过程中发现,即使这一步未操作,也不会影响库文件的编译。

③、修改编译输出格式

        点击魔术棒-->在弹出的窗口中,选择Output-->勾选Create Library选项。记住Create Library后面的路径,在程序库文件编译后,需要去这个路径下查找库文件。

④、提取库文件

        在前面几步的操作完成后,点击编译,编译完成后,会编译信息会提示正常。

        进入到输出路径下,可以看到编译出来的库文件,根据实际情况,对库文件进行重命名,并将lib库放到对应的源码路径下,替换源码。

3、测试库文件

        在未编译库文件时,整个工程代码正常编译,程序烧录下载后,设备正常运行。

        程序编译成库文件文件后,去除工程中加入的源文件,引入库文件,并将编译输出模式,更改为Create Executable,重新编译工程。

        如图所示,编译正常,并且下载到设备中后,设备正常运行。

相关推荐

  1. 【linux】一个c文件so文件

    2024-07-15 17:40:03       26 阅读
  2. 如何使用visual studio .c文件dll文件

    2024-07-15 17:40:03       33 阅读
  3. ubuntu c++调用python的so并获取返回值

    2024-07-15 17:40:03       40 阅读
  4. 用GCC把C语言文件Intel语法的汇编代码

    2024-07-15 17:40:03       27 阅读
  5. 把 .py 文件 .pyd 文件

    2024-07-15 17:40:03       23 阅读
  6. 【Linux笔记mysql

    2024-07-15 17:40:03       36 阅读
  7. 【Linux笔记wpa_supplicantl

    2024-07-15 17:40:03       47 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 17:40:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 17:40:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 17:40:03       58 阅读
  4. Python语言-面向对象

    2024-07-15 17:40:03       69 阅读

热门阅读

  1. Redis① —— Redis基础

    2024-07-15 17:40:03       21 阅读
  2. LeetCode 445.两数相加||

    2024-07-15 17:40:03       16 阅读
  3. openstack

    2024-07-15 17:40:03       19 阅读
  4. Memcached与Redis:缓存解决方案的较量与选择

    2024-07-15 17:40:03       21 阅读
  5. pandas读取超过16位的excle

    2024-07-15 17:40:03       16 阅读
  6. blinker库

    2024-07-15 17:40:03       19 阅读
  7. 如何使用断点续传方式上传大文件到阿里云 OSS

    2024-07-15 17:40:03       14 阅读
  8. Web打点技术的攻击手段和渗透测试工具

    2024-07-15 17:40:03       20 阅读
  9. 游戏开发面试题2

    2024-07-15 17:40:03       18 阅读
  10. linux系统调用

    2024-07-15 17:40:03       21 阅读
  11. git安装

    git安装

    2024-07-15 17:40:03      19 阅读
  12. 2# 监控都不管用

    2024-07-15 17:40:03       16 阅读