最近在实习,做了一个小的项目, 这里用到了一些lib的库以及dll的库,这里我记录一下自己的配置的方式,为以后做个准备吧,估计以后也会遇到这样的问题,避免遗忘。
-
首先,我们需要知道lib文件和dll文件是什么东西,这里我不具体介绍,具体的信息大家可以去找一些书籍看看,这里我做个简单的介绍,lib文件是windows平台下的静态库,dll文件是windows平台下的动态链接库,这两个概念我稍微解释一下,静态库是编译的时候需要的,连接器从lib文件中拷贝所需要的代码,将这些代码拷贝到我们最后的可执行文件之中,也就是说最后的可执行文件是包含了lib里面的内容,因此当生成可执行文件之后,静态库就是不再被需要了。但是对于动态库就不是这样了,动态库包含了能被很多程序调用的代码,可执行文件中是不包含动态库中的代码的,因此,动态库是在可执行文件运行过程中被需要的。
-
举个简单的例子,假设我们有三个文件hello.h, hello.cpp, main.cpp, 假设hello.h中引用了一个外部库中的函数,假设是market.h,market.lib和market.dll, 下面我就开始介绍在vs2017中是怎么使用lib文件和dll文件,这里我们先需要一些基础的信息,假设我们的项目路径是D:\vsprojects\hello, 外部库目录在D:\vsprojects\hello\market(里面包含market.h和market.lib和market.dll)。
-
首先,
image.png
右键hello这个项目, 点击属性,
image.png
得到配置属性,再点击c/c++,
image.png
点击附加包含目录,这一步是找market.h文件的,
image.png
将market的路径放进去,然后点击确定,再点击应用。 -
接下来我们需要让文件找到lib文件,因为这是编译期所必须的,
image.png
点击链接器,
image.png
再点击常规,点击附加库目录,
image.png
再把lib文件的路径加上去,注意的一点是如果你的lib文件在其他路径,就需要改一下这个路径,如果你的lib文件存在于多个路径下,那么每个路径都需要添加进去。然后我们点击确定,再点击应用。
image.png
接下来,我们点击链接器->输入,再点击附加依赖项,
image.png
输入我们需要用到的lib文件名,如果我们需要用到多个lib文件,我们也需要将所有需要用到的lib文件名都输入进去。再点击确定,点击应用,再点击确定,就好啦。 -
到这里,我们是可以编译生成可执行文件的,但是根据我们之前的说法,动态库好像没出现呢,别急着,如果我们已经生成可执行文件了,这个时候我们运行可执行文件就报错,提示找不到market.dll, 很正常,毕竟我们没设置dll呢,但是这一步很简单,我们只需要将dll文件拷贝到和exe一个路径下就好,比如在我们这个项目中,exe文件应该是在路径D:\vsprojects\hello\Debug\目录下,注意这个Debug是和hello.sln文件是在同级目录下的,而不是和hello.cpp文件在同级目录下的Debug,我们将market.dll拷贝到这个目录下,再运行,就一切ok,祝你们成功!
网友评论