前言

啥是静态库?
静态库是指在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;
在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中的这种库。
静态库文件的格式后缀是 .lib。–百度百科

简化来说就是: 实现代码块的反复利用,静态库类似于一个接口。
举一个简单的例子: 假如说,你写了一个函数里面实现了一个很厉害的功能。你的一个好友想用你这个函数。
但是你不想让他知道内部函数是如何实现的,只是想让调用这个函数。那么静态库就可以满足你这样的需求。
你只需把声明函数的头文件给他,和静态库文件给他就行了。他就可以直接调用你写的函数。而并不知道里
面内部的代码。

静态库的缺点:
静态库虽优点很好,但是也是有缺点的。你调用静态库编译后,生成exe后。静态库
的东西都会直接嵌入到里面。这样你的exe程序会很大。

编写一个简单的静态库

下面跟着我的步伐,来创建一个简单的静态库吧!
第一步:创建一个静态库项目

在项目里面创建一个demo.cpp和一个demo.h。
这里的过程不在赘述,不会的话可以看我之前写的一篇关于编写头文件的文章。编写一个c程序的头文件
demo.cpp的内容如下:

demo.h的内容如下:

生成一下:

可以看到已经生成了一个demolib,lib的静态库文件。到这里静态库的编写已经完成了。

使用静态库

接下来就是使用要我们的静态库了。
我又创建了一个新的文件夹,并在该文件夹下创建了一个新的项目。
随便写个东西来编译一下,让其产生我们的cpp文件。


将我们刚才写的静态库的头文件和.lib文件复制到该目录下。
如下图所示:


这里把这两个文件复制到该目录下的目的是: 该项目的工作空间默认是这里,直接弄到这里就不用来配置demo.h和demolib.lib的路径了。
方便使用。
接下来把demo.h导入到该项目中。就可以直接调用我们静态库的函数了。

如果静态库的路径你没有在默认的工作空间下,就要手动配置,配置过程如下:

当然.h文件的路径你也可以手动的配置

手把手教你C语言静态库的开发相关推荐

  1. 手把手教你建立私人数据检索库(二)

    声明:本文介绍的安全工具仅用于渗透测试及安全教学使用,禁止任何非法用途 0x00 序言 咳咳,这里是青空酱.本次为大家带来<手把手教你建立私人数据检索库>系列第二讲之数据的清洗导入与配置. ...

  2. 【手把手教你如何从Tushare库下载股票数据,并保存在硬盘当中,第一篇数据过滤】

    手把手教你如何从Tushare库下载股票数据,并保存在硬盘当中.第一篇数据过滤 前言 一.Tushare是什么? 二.代码 1.引入库 2.交易日的逻辑 3.先把每天个股的基础数据调出来 3.接下来我 ...

  3. 手把手教你写网站:Python WEB开发技术实战

    摘要:本文详细介绍了Python WEB开发的基础入门.以一个博客站点的开发为例讲解了基于Django框架开发WEB站点的全过程.通过本文的学习可以快速掌握基于Django的Python WEB的开发 ...

  4. 手把手教你玩 MySQL 删库不跑路,直接把 MySQL 的 binlog 玩溜

    我们常常听人说,只要你愿意,MySQL 可以恢复至半个月甚至一个月以内的任何一个状态.网上也有很多删库跑路的段子... 那么今天松哥想和大家来聊一聊 MySQL 中的 binlog,来手把手教大家如何 ...

  5. 手把手教你STM8单片机标准库移植

    本节主要内容:完成Lora模块单片机STM8L101F3标准库的移植 STM8l101F3单片机属于是8位单片机,但和传统的51有很大的区别: 1.STM8的内核不一样:  51单片机的内核是传统的8 ...

  6. C 语言 静态库和动态库的创建和应用

    ---------- GETPI.Cdouble getPI(void) {return 3.14159265358979324; }---------- MYLIB.H #ifndef _MYLIB ...

  7. C语言 静态库制作(亲测可行)

    文章目录 静态库简介 静态库制作 代码实现 创建静态库 链接使用静态库 静态库简介 静态库的本质就是将多个目标文件打包成一个库文件.链接静态库就是将库中被调用代码复制到可执行文件中.使用了静态库的可执 ...

  8. linux c语言静态库,linux下的C语言开发(静态库/动态库)

    今天我们讨论的问题是静态库.为了显示windows和Linux创建静态库之间的差别,我们首先在windows上面利用Visual C++6.0创建一个静态库.源文件的代码很简单, #include & ...

  9. linux ndk编译静态库,Android开发教程:NDK编译静态库失败

    Android---NDK编译静态库失败 Android.mk 相关编译文件: include $(CLEAR_VARS) LOCAL_MODULE    := libdvnca LOCAL_SRC_ ...

最新文章

  1. /* * 编程第二题(20分): 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第十次落地时,共经过多少米?第十次反弹多高? */
  2. 质数c语言欧拉筛选,Python|欧拉筛法求质数
  3. MySQL -A不预读数据库信息(use dbname 更快)
  4. 面试题总结16 对一个整数开根号
  5. 工质热物理性质计算程序的编制及应用_新能源动力电池热管理方案设计和热流体仿真...
  6. java搭建聊天服务器_使用 ServerSocket 建立聊天服务器-2
  7. 手把手带你入门Python爬虫(一、工欲善其事必先利其器)
  8. 2015-01-11 在SQL2008创建一个数据库
  9. 腾讯信息流推荐业务实践:内容分发场景的多目标架构实践
  10. html过滤 -java_PHP过滤各种html标签
  11. Rocketmq介绍和安装
  12. 系统封装教程集合电子书
  13. 叮~AutoML自动化机器学习入门指南,来了
  14. Service Broadcast简单音乐播放功能
  15. 13个PHP魔术函数
  16. 简单两个矩阵如何用计算机运算,矩阵运算-如何用卡西欧fx-82es计算器计算矩阵和 – 手机爱问...
  17. PS2019 常用快捷键大全
  18. matlab仿真没有synchr,Synchro交通仿真系统分析及应用
  19. nginx负载接口与宕机切换
  20. C# .net+DevExpress自定义控件(UserControl)之分页控件

热门文章

  1. Python300篇电子书免费送
  2. [LeetCode] 461. Hamming Distance
  3. Vim快捷输出查找寄存器的内容(去除\,\和\V)
  4. 网络编程学习方法和图书推荐
  5. U盘安装CentOS7跳坑记
  6. (chap7 确保WEB安全的HTTPS) HTTPS和SSL
  7. [密码学] 因子分解
  8. [JAVA基础] 成员变量和局部变量(一看就懂的总结归纳篇)
  9. 77. 组合(回溯算法)
  10. 数据结构与算法——树的广度优先遍历