- 论坛徽章:
- 7
|
我的理解,不一定对
库————————(libraries) --所有下面的总称(除了动词)
静态库——————(statical libraries) -- 编译时被链接入二进制代码中, libxxx.a就是静态库
共享库——————(shared libraries) -- 不清楚,所有的库都是共享的吧?
动态链接库——————(Dynamic link libraries) -- 这是一个名词,而不是一个动词。 libxxx.so就是动态链接库
动态加载库———————(Dynamic load libraries) -- 这是一个动词,而不是名词。 应该就是显示调用dllopen
还有就是共享库的“隐式调用”和“显示调用”。
这里就说下动态库的隐式调用和显示调用,但不说共享库的隐式调用和显示调用。 共享库是什么?库应该都是共享的吧?
1.隐式调用,gcc 1.c -lpthread -lm --编译时链接
然后代码里面直接用库函数,pthread_create...
2.显示调用,gcc 1.c
代码里面如果想使用pthread_create,应该使用dllopen打开libpthread.so,dlsym获取pthread_create函数的指针,才可以使用
这跟静态加载和动态加载有什么区别啊,难道是一样的?
1.个人觉得静态加载就是隐式调用的编译时链接
2.动态加载就是显示调用的dllopen
|
|