zoukankan      html  css  js  c++  java
  • VS中lib和dll

    Lib文件

    先来说一说lib文件,C++中lib文件主要有两类,一种是静态的编译连接,叫做静态链接库,另一种是动态的编译链接,和Dll文件一起使用,在该小标题下,主要说一下静态链接库,另一种将在Dll文件中讲解。所谓的静态链接库,就是以.lib结尾的文件(由于有动态的编译链接的lib存在,因此并不是所有的.lib文件都是静态链接库文件),该文件可以通过VS2005建立工程,然后将项目属性中的输出设置成lib形式,编译后就可以生成一个.lib文件,这就是静态链接库。

    • 我们如何使用生成的.lib文件呢?

    为了可以使用.lib文件,我们需要刚刚生成的.lib文件,以及它所对应的头文件.h,因为.lib文件无法直接访问,且无法得知其接口,因此需要对应的头文件。假设现在有一个工程需要使用该lib文件,首先需要在工程属性中将.h文件的路径设置好,在文件中使用#include将头文件包含,然后对于lib文件,需要在工程属性中,设置其路径(或者直接放在工程文件的目录下,因为工程查找文件时是以工程文件所在路径为相对路径查找),然后类似opencv一样,在项目属性中,linker->input中输入要使用的lib名(或者使用program**,在文件中用语句将其写入(推荐)),这样配置就结束了。

    • lib文件如何起作用?

    当工程在编译的时候,系统就会将lib中的函数的实现插入到生成的exe中,从而完成其作用,因此我们知道,当lib很大的时候,最后生成的exe文件会相当的大,因为将需要的lib都加载到了最终的exe中。

    (补充:VS程序编译过程:预处理(.h文件展开、宏。。。。)——》编译(每个.cpp分别编译,)——》连接(链接静态库,即把lib中的函数实现插入并生成exe))这个后面专门写个日志,详细说说。

    DLL文件

    了解了上面的内容后,Dll的理解就方便多了。DLL文件被称为动态链接库。我们可以通过使用工程建立他们,在建立的时候首先建立一个空项目,然后将输出设置成dll,然后在主函数前使用***,意思是将该文件函数以dll文件导出,然后编译后生成了.lib文件和dll文件,其中的dll文件就是动态链接库,但是要注意这里的.lib文件就是上面所说的另一种lib文件,不同于静态链接库的lib文件(该lib文件中货真价实的是函数的实现),该lib文件中没有函数的实现,而也是一些定义以及配置,真正的函数的实现存在于dll文件中。

    • 我们如何使用生成的.lib和dll文件呢?

    要想使用dll文件,需要其对应的头文件.h,lib以及动态链接库dll文件。前两者的配置和上面一样,dll直接放到exe文件下即可。

    • lib和dll文件如何起作用?

    当一个工程在编译的时候,dll配套的lib文件将被使用,用来安插和dll文件的接口,但是不会将函数的实现放到最终的exe中,当exe程序在使用的时候,会动态的从对应的dll文件中调出需要的函数。因此这种方式使得exe文件不至于很大,而且方便应用程序的修改和升级。

  • 相关阅读:
    牛客网PAT练习场-有几个PAT
    牛客网PAT练习场-到底买不买
    增量数据捕获cdc
    windows terminal 笔记
    ubuntu文件夹颜色设置及vim颜色配置
    windows sub system 如何修改root密码
    Intellij IDEA 一个Tomcat启动多个Web的设置
    What is “Deploy applications configured in Tomcat instance” in IntelliJidea
    接口批量测试
    使用soupUI,jemter 测试http接口的方法
  • 原文地址:https://www.cnblogs.com/Yogurshine/p/3136025.html
Copyright © 2011-2022 走看看