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运行时才用到,所以被称为动态库文件)
运行程序,输出结果:
以上是关于Visual studio那些破事。。。(生成静态库生成动态库引用静态库引用动态库)的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2015 编译生成支持HTTPS协议的libcurl静态库
静态代码分析器:非托管C ++ Visual Studio 2008
visual studio 2008 生成exe文件太大了,都要几百K,而vc6.0才十多K