mingw编译出来的动态库的导入库可以直接在vc中直接使用

静态库 lib .a

动态库 dll
动态库导入库 lib .dll.a

静态链接库
a) 静态链接库的类和函数不需要导出,就能够被其他库调用。
b) 在exe或dll链接静态库时,会把静态库中调用到的代码拷贝过来(没有调用到的代码不会拷贝),所以程序运行时,不再需要静态链接库的lib文件。
c) 生成静态链接库时,只有编译过程,没有链接过程,也就是说调用其他库的类或函数时,只需要其他库的头文件,而不需要其他库的lib文件,所以如果一个静态链接库A调用了另一个静态链接库B,不会把B中的实现代码拷贝到A中,其他exe或dll链接库A时,无法自动链接到库B,需要手动同时链接库A和库B才能编译通过。
动态链接库
a) 生成动态链接库时,会同时生成一个.dll文件和一个.lib文件,dll文件中包含该库的全部内容,lib文件只包含该库的输出符号表,即导出类和导出函数的名字以及他们在dll中文件的地址,所以动态链接库的lib文件非常小。
b) 动态链接库中,只有用__declspec(dllexport)关键字导出的类和函数,才会被添加到lib文件中,也才能被其他库调用。
c) 在exe或dll链接其他动态库时,只是从lib文件中得到了它所调用的导出类和导出函数在dll文件中的地址,而不会拷贝实现代码,所以程序链接时需要动态库的lib文件,而不需要dll文件,程序运行时,不需要动态库的lib文件,而需要dll文件。
d) 生成动态链接库时,既有编译过程,也有链接过程,也就是说调用其他库的类或函数时,同时需要其他库的头文件和lib文件(静态库和动态库都有lib文件),才能编译通过,所以如果一个动态链接库A调用了另一个动态链接库B,其他exe或dll链接库A时,可以自动链接到库B。

最新文章

  1. Tomcat 日志清除(含扩展AccessLogValve)
  2. Play Framework 完整实现一个APP(九)
  3. C#多线程同步事件及等待句柄AutoResetEvent 和 ManualResetEvent
  4. 数位DP BZOJ 1026 [SCOI2009]windy数
  5. 我与solr(二)--导入mysql数据库
  6. 用纯Css作三角形
  7. sql必知必会(第四版) 学习笔记
  8. WebView的返回功能
  9. Mapreduce读取Hbase表,写数据到一个Hbase表中
  10. SQL 复杂查询
  11. ASP.NET MVC 学习第二天
  12. 模拟接听电话的方法,兼容华为android5.0以上设备
  13. Tomcat 8熵池阻塞变慢详解(转)
  14. mybatis 与 ehcache 整合[转]
  15. SQLite中的时间日期函数
  16. 用python批量修改文件名
  17. Python进阶内容(四)--- 迭代器(Iterator)与生成器(Generator)
  18. 《剑指offer》扑克牌顺子
  19. 小tips:path的join和resolve的使用区别
  20. innodb二阶段日志提交机制和组提交解析

热门文章

  1. java后端整合极光消息推送
  2. [编程基础] Python对象的浅拷贝与深拷贝笔记
  3. AI换脸实战教学(FaceSwap的使用)---------第二步Tools:处理输入数据集。
  4. SICTF_wp
  5. ORM执行SQL语句,神奇的双下划线查询,ORM外键字段的创建,外键字段数据的操作,多表查询
  6. 【分析笔记】Linux gpio_wdt.c 看门狗设备驱动源码分析
  7. 嵌入式Linux—Framebuffer应用编程
  8. 20个 Git 命令玩转版本控制
  9. 实现简单的`Blazor`低代码
  10. HGAME 2023 WP week1