C++静态库和动态库怎么使用
这篇文章主要讲解了"C++静态库和动态库怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C++静态库和动态库怎么使用"吧!
为什么要写这个教程?
这个应用模型是我们在开发过程中经常使用的,例如:作为一名资深程序员,你需要为公司的应用开发工程师提供一个轮子:modbus通讯库。通过阅读modus协议之后,你可以手动实现这个库,你也可以在一些第三方的开源软件(比如:libmodbus)的基础上进行简单的修改,更快速的搞定工作。
如果你选择了后面这种做法,在libmodus库的外面再包裹一层你定义的API函数就可以输出以你的名字命名的库libNB.so,然后提供给应用开发人员。
但是在你的libNB.so中一定要静态链接libmodbus库,这样就只需要提供一个libNB.so就可以了(.h头文件当然是必须的),应用开发人员就会惊叹:大牛就是大牛,这么快就搞定了!
相反地,如果你动态链接libmodbus库,这样你就得提供2个文件给应用开发人员:libmodbus.so和libNB.so,这样就暴露了你偷懒的高尚品德。
这个教程就是来演示这个编译和链接过程。
当然,也顺带着介绍一些make+Makefile, cmake, VS2017等相关知识。
教程中包含的内容
1. Linux平台下
动态库、静态库的编译和使用;
动态库和静态库的间接使用;
使用make + Makefile 来编译/构建动态库、静态库、应用程序;
使用cmake来编译/构建动态库、静态库、应用程序。
2. Windows平台下
动态库、静态库的编译和使用;
动态库的导出机制;
使用cmake+VS2017来编译/构建动态库、静态库、应用程序。
3. 大概就是这个样子
视频演示步骤
1. Linxu平台
分别演示make + Makefile 和 cmake 来完成下面的操作:
(1)libA输出动态库,libB输出动态库,编译可执行程序。
(2)libA输出静态库,libB输出动态库,编译可执行程序。
2. Windows平台
演示用cmake得到VS项目,然后完成下面操作:
(1)libA输出动态库,libB输出动态库,编译可执行程序。
(2)libA输出静态库,libB输出动态库,编译可执行程序。
(3)你还可以自己去测试剩下的排列组合。。。
感谢各位的阅读,以上就是"C++静态库和动态库怎么使用"的内容了,经过本文的学习后,相信大家对C++静态库和动态库怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!