欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

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

发布时间:2025/3/20 编程问答 27 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Visual studio那些破事。。。(生成静态库、生成动态库、引用静态库、引用动态库) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

共4个小步骤,每个小步骤你都可以新建个VS解决方案,自己跟着步骤跑一下,windows怎么【生成静态库、生成动态库、引用静态库、引用动态库】你就基本明白了@!

文章目录

    • 1、导出静态库.lib(add.lib)
    • 2、导出动态库.dll(multi.dll)
    • 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运行时才用到,所以被称为动态库文件)
      • 运行程序,输出结果:

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


int add(int a , int b){return a+b; }int sub(int a , int b){return a-b; }

#pragma once extern int add(int a, int b); extern int sub(int a, int b);

然后按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那些破事。。。(生成静态库、生成动态库、引用静态库、引用动态库)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。