这篇文章主要是视频教程的辅助文档,把其中的一些重要的内容放在这里,强化一下印象,更好的理解教程内容。
为什么要写这个教程?
这个应用模型是我们在开发过程中经常使用的,例如:作为一名资深程序员,你需要为公司的应用开发工程师提供一个轮子:modbus通讯库。通过阅读modus协议之后,你可以手动实现这个库,你也可以在一些第三方的开源软件(比如:libmodbus)的基础上进行简单的修改,更快速的搞定工作。
如果你选择了后面这种做法,在libmodus库的外面再包裹一层你定义的API函数就可以输出以你的名字命名的库libNB.so,然后提供给应用开发人员。
但是在你的libNB.so中一定要静态链接libmodbus库,这样就只需要提供一个libNB.so就可以了(.h头文件当然是必须的),应用开发人员就会惊叹:大牛就是大牛,这么快就搞定了!
相反地,如果你动态链接libmodbus库,这样你就得提供2个文件给应用开发人员:libmodbus.so和libNB.so,这样就暴露了你偷懒的高尚品德。
这个教程就是来演示这个编译和链接过程。
当然,也顺带着介绍一些make Makefile, cmake, VS2017等相关知识。
视频链接
这里有相关的视频说明:
https://www.bilibili.com/video/BV19t4y1e7YD?from=search&seid=2569462564675483069
教程中包含的内容
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)你还可以自己去测试剩下的排列组合。。。