编写:

创建一个新项目,右键解决方案—>添加—>新建项目

空选项—>下一步

输入名字和路径---->创建

右键项目名—>新建项—>新建一个.h头文件和.c源文件


编写头文件和源文件

静态编译头文件

#pragma once
//方便c++调用
#ifdef __cplusplus
extern "C" {
#endif
//正常函数写法即可int add(int a, int b);#ifdef __cplusplus
}
#endif

动态编译头文件

#pragma once
//方便c++调用
#ifdef __cplusplus
extern "C" {
#endif
//内部函数就是正常写法,外部不可调用//外部函数(导出函数)的格式  普通函数前面加上_declspec(dllexport)__declspec(dllexport)int myAdd(int a,int b) ;#ifdef __cplusplus
}
#endif

源文件

源文件不会写就去学c语言

右键项目名—>属性—>配置属性—>常规—>修改配置类型为静态库(.lib)


  • 编译生成新的解决方案,静态编译在Debug文件夹下会得到.lib文件,将该.lib文件和相应头文件给用户,用户就可以使用该库的函数.
  • 动态库会生成.lib和.dll文件.
  • 静态库会生成.lib文件,里面放的是函数实现
  • 动态库会生成.lib和.dll文件,.lib放的是那些函数是导出的,.dll放的是代码的实现

导入

新建一个项目,右键项目名—>在资源文件管理器中打开文件夹—>把.lib和头文件复制进去

右键项目名—>添加—>现有项—>选择复制进的文件(箭头下面的那个)

最后:

静态编译导入头文件就可以使用里面的函数了,

动态编译导入头文件之后还要加上一句话。

#pragma comment(lib,"./testDll.lib")//双引号里面是文件的相对路径,修改你的库名即可

c编译动态库和静态库流程相关推荐

  1. Linux下CMake简明教程(六)动态库和静态库的编译控制

    代码在git 有时只需要编译出动态库和静态库,然后等着让其它程序去使用.让我们看下这种情况该如何使用cmake.首先按照如下重新组织文件,只留下testFunc.h和TestFunc.c ├── CM ...

  2. GCC : 什么是编译?什么是静态库?什么是动态库?怎么生成?优先级?

    本文旨在让大家真正明白C程序如何运行.库文件的种类区别.如何生成.如何使用等! 一.简介: gcc 最初是 "GNU C Compiler" 的简称,只是当作一个 C 语言的编译器 ...

  3. 【转】C语言如何编译动态库与静态库?

    因为是别的论坛,不能直接转载,自己在这里再粘贴一下-- 转载网址:https://www.2cto.com/kf/201711/699202.html 关于动态库与静态库的作用这里就不在详细赘述了,重 ...

  4. linux centos 编译Lua5.2.0 静态库 动态库

    一 lua下载 lua5.2.0下载地址 :http://download.csdn.net/download/yzf279533105/10109818 二 笔者这里linux环境为centos6. ...

  5. mysql.h 动态编译命令_Linux环境编译动态库和静态库总结

    对Linux环境动态库和静态库的一些基础知识做一些总结, 首先总结静态库的编译步骤. 1 先基于.cpp或者.c文件生成对应的.o文件 2将几个.o文件 使用ar -cr命令 生成libname.a文 ...

  6. linux系统c++编译连接过程,动态库与静态库

    https://www.cnblogs.com/ucas/p/5778664.html(linux系统c++编译连接过程) http://www.cnblogs.com/skynet/p/337285 ...

  7. Linux环境编译动态库和静态库总结

    首先总结静态库的编译步骤. 1 先基于.cpp或者.c文件生成对应的.o文件 2将几个.o文件 使用ar -cr命令 生成libname.a文件 libname.a 为静态库, name 为静态库的名 ...

  8. 动态库、静态库编译测试:含静态库链接动态库、静态库,动态库链接静态库、动态库

    本文的目的是测试各种类型库的编译后的使用效果,包括库又链接其他库的编译方法,使用方法,依赖性等. 太长不看版:请跳至文章最后的总结对比表. 一.内容包含: ①静态库libbb.a依赖静态库libaa. ...

  9. 使用编译好的OPENNI2的动态库与静态库进行Kinect2.0的ONI格式视频流录制

    第一步 先安装KinectV2.0SDK SDK的安装包我已经在官网下载好了 在网盘链接:http://pan.baidu.com/s/1geXSecF 密码:w1tl 第二步  准备好开发所需的LI ...

  10. VS2017 编译 PDFium 源码,生成 x86、x64,动态库、静态库

    PDFium 源码编译 一.下载源码:         1.下载 depot_tools 源码:                https://chromium.googlesource.com/ch ...

最新文章

  1. 递归回溯解决八皇后问题
  2. 《高性能JavaScript》第五章 字符串和正则表达式
  3. Java使用继承的语法是,Java使用继承
  4. asp.net core 错误定位 vs2017 远程调试部署在centos上的asp.net core程序
  5. [转载]建立团队沟通协作工作方式
  6. python asyncio 异步编程---协程
  7. 一款非常简约好看的白色网格个人引导页HTML源码
  8. php无限次执行函数,php-PHP一个方法根据传递值怎么执行多次?
  9. oracle如何查看实例用户,oracle 如何显示当前执行的用户和操作实例
  10. 0x00D2DCAC 处(位于 Company.exe 中)引发的异常: 0xC0000005: 读取位置 0x00000024 时发生访问冲突。
  11. 学习使用autotools
  12. MindSpore,易用性提升的思考与实践
  13. sybase数据库与oracle,Oracle访问Sybase数据库的方法
  14. 搭建redhat本地yum仓库,用于离线更新其它主机
  15. 微信缓存dat怎么转图片_PC微信dat怎么转图片?
  16. 小技巧 - 同步苹果手机和 Windows 的提醒事项
  17. 关于2010年部分节假日安排
  18. 初用MssqlOnLinux 【1】
  19. matlab 序列对称,共轭对称序列.PPT
  20. 这个社会最大的现实是“大鱼吃小鱼,小鱼吃虾米”

热门文章

  1. 解决桌面单击右键反应慢的问题
  2. 网络文件夹共享服务器,五个最佳网络文件共享服务
  3. Java实现微信扫码关注公众号登录网站
  4. TypeScript 学习笔记
  5. 【Unity2D入门教程】简单制作战机弹幕射击游戏⑤C#编写 背景滚动移动以及增加粒子特效
  6. E. Array Shrinking
  7. jQueryEasyU校验邮箱、手机号等
  8. 使用Arcgis Pro 2.5生成地图文件(tpk,mmpk)
  9. ArcGIS Pro 创建tpk
  10. aid learning安装应用_Aid-Learning?在手机上免root运行VSCode?手机上实现多窗口?