Visual studio那些破事。。。(生成静态库生成动态库引用静态库引用动态库)

Posted Dontla

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Visual studio那些破事。。。(生成静态库生成动态库引用静态库引用动态库)相关的知识,希望对你有一定的参考价值。

1、导出静态库.lib(add.lib)




然后按F7生成(注意你是在debug模式还是release模式生成的。。。还有是32位还是64位,这其中的区别不用我说你应该自己能悟出来吧?)

然后静态库文件就有了:

回头你要交代吗的时候是得把.lib文件和.h一起交给别人的!

2、导出动态库.dll(multi.dll)

.cpp要自己导自己的头文件

头文件声明函数前要加__declspec(dllexport)

项目属性页,配置类型选动态库

生成 – >生成解决方案

.dll.lib都有了,windows就是这么贱,动态库还得要lib(╬▔皿▔)凸

3、静态库.lib的引用(引用1生成的add.lib)

还是在项目,属性中设置:将需要调用的.lib文件的头文件所在的路径复制到附加包含目录中:


将所要链接的.lib文件所在的目录,添加到项目属性–>链接器–>常规–>附加库目录中:

将add.lib文件的文件名复制到链接器–>输入–>附加依赖项中:


代码:

然后生成解决方案:

生成了可执行文件,vs中运行程序,结果正确


4、动态库的.dll的引用(引用2生成的multi.dll)(multi.lib作为符号表也要用到)

代码


属性也添加附加包含目录C/C++ -->常规添加附加包含目录,把multi.h头文件路径包含进去

在链接器–> 常规–> 附加库目录把multi.lib所在的路径包含进去


在链接器–> 输入–> 附加依赖项把multi.lib的文件名填进去

把在2里面生成的multi.dll拷贝到.exe生成的同一文件夹下(.dll只有.exe运行时才用到,所以被称为动态库文件)

运行程序,输出结果:

参考文章:c++中.dll与.lib文件的生成与使用的详解

以上是关于Visual studio那些破事。。。(生成静态库生成动态库引用静态库引用动态库)的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2015 编译生成支持HTTPS协议的libcurl静态库

静态代码分析器:非托管C ++ Visual Studio 2008

Visual Studio静态编译

visual studio 2008 生成exe文件太大了,都要几百K,而vc6.0才十多K

Visual Studio 2017 动态链接库(DLL /LIB) 静态链接库(LIB)的思考

从 MinGW 静态库 (.a) 到 Visual Studio 静态库 (.lib)