gcc动态链接库的问题,100分相赠,多谢
在windows系统下, 动态链接库称为DLL, 有很多方式用这个东东:
.h + .lib + .dll =》 方式一
.lib + dll =》 方式二
dll =》 方式三
据我所知,DLL若是要被.exe文件使用,是不需要参与编译的, 只需要把.h, Lib包含进去编译即可搞定.
而在Linux系统下, 动态链接库称为: share object, .so文件
这样的so文件确始终参与了编译, 并且有点奇怪, so文件参与了编译生成可执行程序,
此时, 将一个新的.so文件替换原来参与编译的.so文件(保证用到的接口不变), 依然可以调用~
我的理解是: 参与编译的库, 必然是静态的. gcc通过so保证静态编译,又能做到动态连接???
灰常不理解~ gcc的动态链接原理.
高深的道理,浅显的诠释,才是高手....
期待这样的高手