项目学习地址:【牛客网C++服务器项目学习】
day2
1.动态库的生成和使用
动态库,在程序的运行阶段,动态链接在程序中?不占用资源,只有使用到某个库时才会去加载
动态库的制作方法:
1.命名规则:libxxx.so(Windows平台下是libxxx.dll,dll是dynamic linked library的缩写)
2.gcc得到.o 文件,不过要加关键字 -fpic得到与位置无关的代码
-
gcc -c -fpic a.c b.c
-
再使用gcc由.o文件得到动态库
- gcc -shared a.o b.o -o libxxx.so
动态库的集中加载失败原因:
动态库在Linux下是一个可执行文件,只有在程序运行时,动态库会加载在内存中,动态的装载在程序中,相较于静态库,整个执行的过程变得更加的复杂了,因此,如果不注意,动态库的加载就会出现问题,下面总结集中加载失败的原因:
-
动态库文件和头文件都需要打包给用户
-
编译时需要指明动态库的绝对路径
-
动态库没有写入在内存中,程序运行时,找不到动态库