静态链接是指将一个或多个静态链接库(.lib文件)在Link时期和调用该库的程序一起形成exe文件。网上关于静态链接库的理论叙述多且详尽,我就不再造轮子了,此处仅说明一下具体的使用方法。

创建一个lib的过程很简单,如:

在项目中添加Func.h和Func.cpp文件:

其中分别是示例函数add的声明和实现。

编译之后,得到

接下来就是如何使用这个静态链接库了。
新建一个控制台程序UseLibTest,如下:
使用静态链接库需要两个条件:
1)拥有静态库对应的头文件,此处为Func.h;
2)导入Lib文件,此处为MyLibTest.lib;
将Func.h和MyLibTest.lib放入到UseLibTest的源代码所在目录下(P.S:对win32工作目录没啥了解,尝试过把Lib文件放到Debug文件夹里,编译器表示找不到,放到源代码目录下却神奇地可以找到),并在源代码中添加这样一行代码:

这是一条预编译指令,从这条指令上也可看出,静态链接库中的代码在编译时是和主程序一起编译的。
编译UseLibTest并运行,结果如下:

静态链接库使用成功!
注意静态链接库中不能再包含其他的动态链接库或者静态库 ,而在动态链接库中还可以再包含。

Windows下静态链接库的使用相关推荐

  1. linux下静态链接库和动态链接库

    关于链接库的知识,网上太多资料了,但是并不代表我很熟悉.今天遇到了 一个问题,就是由于静态链接库和ubuntu系统不兼容导致的,虽然花了点时间才搞定 但是,其中暴露的问题也不少. 没有区分好静态链接库 ...

  2. cnsl是什么意思_VS2010下创建静态链接库和动态链接库

    VS2010下创建静态链接库和动态链接库 类封装成dll如果你的工作长期与某个领域相关,比如说长期做直接体绘制 (DVR)方面的开发,那么你可能经常使用自己的传递函数类,如果每一个工程你都把传递函数类 ...

  3. gcc/gdb/make/动/静态链接库介绍

    gcc是一个编译工具,我们平时写的c/c++代码要想变成可执行文件,必须要经过预处理.编译.汇编.连接等步骤.gcc工具就完成这些动作. 一gcc编译过程 二.gcc常用参数 1.编译过程常用参数 参 ...

  4. 静态链接库与动态链接库 (二)动态链接库的编译与使用

    上一篇文章里大概描述linux下静态链接库的编译与使用,下面讲动态链接库的编译与使用方法. 1. 什么是动态链接库 所谓动态链接库,是指编译的时候不会把程序引用到的库插入到执行程序里,而是在执行时候才 ...

  5. C++自定义静态链接库

    目录 创建静态链接库项目 创建项目 ​ 创建函数 设置项目生成文件 生成lib 创建使用静态链接库项目 新建项目 设置库目录 链接静态库 声明需要使用的函数 使用extern 使用 头文件方式(推荐使 ...

  6. windows 调用linux .a lib,动态链接库及静态链接库(windows下的.dll .lib和linux下的.so .a)...

    动态链接库及静态链接库(windows下的.dll .lib和linux下的.so .a) 库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀.例如:libhello.so libhello ...

  7. Windows下动态链接库和静态链接库的生成以及调用

    Windows下静态库和动态库的生成和调用 一.简介 二.生成静态链接库(.lib)和动态链接库(.dll) 三.静态链接库的调用 四.动态链接库的调用 动态链接库的两种调用方式 仅使用.dll文件 ...

  8. Linux下的静态链接库和动态链接库编程

    Linux下的静态链接库和动态链接库编程 参考: Linux下的静态链接库和动态链接库编程 - Histring - 博客园 Mac下静态库和动态库的创建和使用_C/C++_vincent2610的专 ...

  9. Linux下Makefile中动态链接库和静态链接库的生成与调用

    背景:写这篇博客的原因是:最近在搞嵌入式,需要交叉编译opencv库文件,自己写Makefile,通过arm-linux-g++编译.链接.生成可执行文件,从而实现了移植的过程.平台是Toradex的 ...

最新文章

  1. 用java实现一个计算器程序_1.2第一个java程序——hello world
  2. lintcode: k Sum 解题报告
  3. 解决tensorflow报错:AttributeError: module ‘tensorflow.keras.backend‘ has no attribute ‘get_session‘ 问题
  4. 初学Java Web(8)——过滤器和监听器
  5. 在linux kernel或android中解析cmdline参数
  6. 拦截器 java_在Java后端如何添加拦截器
  7. android室内定位+3d,基于Android平台的手机室内定位及导航的设计与实现
  8. CSS(五):背景、列表、超链接伪类、鼠标形状控制属性
  9. 如何查看header object和category 03的IBASE的relationship关系
  10. .NETCore 实现容器化Docker与私有镜像仓库管理
  11. 使用BERT进行跨领域情感分析
  12. 【深度】注册测绘师执业制度实施的现状分析
  13. 一种基于地理信息的服务方式
  14. php实现验证码(数字、字母、汉字)
  15. (13.1.1)PMBOK之一:运营,项目、项目集、项目组合、组织战略及其管理
  16. 《算法竞赛入门经典》第三章思考题
  17. 腾讯T2大牛亲自教你!5214页PDF的进阶架构师学习笔记,终局之战
  18. JavaFX官方文档
  19. 设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛?
  20. 网络中加入注意力机制SE模块

热门文章

  1. java kmp算法_KMP算法java版实现
  2. serverless搭建html,基于ServerLess的极简网页计数器:源码分析与实践
  3. python 关闭 定时开启_Qt多种定时器
  4. endnote修改正文中参考文献标注_请问endnote里,如何把正文中插入参考文献处的格式由数字转为(作者,年份)?感恩!...
  5. python对象底层原理_Python字符串对象实现原理详解
  6. 大学老师的月薪多少?实话实说:4万多一点……
  7. 看技术笔记,提高嵌入式基础
  8. android fragment 菜单栏,android UI:底部菜单栏的学习与制作——Fragment碎片一
  9. java输入流读取几行文本_Java基础笔记Day_16
  10. go test 如何输出到控制台_GO笔记之GO命令快速体验