门户网站建设 报价,手机老是下载一些做任务的网站,wordpress没有重置密码链接,黄岛做网站的公司1.共享库的命名规则 \qquad共享库#xff0c;即动态库。库名#xff1a; lib库名.so
2.共享库的制作
2.1生成与位置无关的.o文件
gcc -fpic -c filename.c -I 头文件路径2.2生成共享库
gcc -shared -o 共享库名 要打包的.o文件 -I 头文件路径2.3生成可执行文件
gcc file…1.共享库的命名规则
\qquad共享库即动态库。库名 lib库名.so
2.共享库的制作
2.1生成与位置无关的.o文件
gcc -fpic -c filename.c -I 头文件路径2.2生成共享库
gcc -shared -o 共享库名 要打包的.o文件 -I 头文件路径2.3生成可执行文件
gcc filename.c 动态库路径/库名 -o 可执行文件名 -I 头文件路径3.动态库无法被加载
\qquad查看可执行文件动态库加载情况
ldd 可执行文件\qquad 需要找动态连接器的配置文件 ld.so.conf
sudo vim /etc/ld.so.conf\qquad 动态库的绝对路径写到配置文件中 \qquad 更新——sudo ldconfig
4.动态库实例
目录结构
zhaoxrzhaoxr-ThinkPad-E450:~/linux$ tree
.
├── head
│ ├── add.h
│ └── mul.h
├── lib
│ ├── add.c
│ └── mul.c
└── source└── main.c3 directories, 5 files制作动态库
生成与位置无关的.o文件
zhaoxrzhaoxr-ThinkPad-E450:~/linux/lib$ gcc -fpic -c mul.c add.c -I ../head/zhaoxrzhaoxr-ThinkPad-E450:~/linux/lib$ tree
.
├── add.c
├── add.o
├── mul.c
└── mul.o0 directories, 4 files生成动态库
zhaoxrzhaoxr-ThinkPad-E450:~/linux/lib$ gcc -shared -o libmylib.so mul.o add.o -I ../head/zhaoxrzhaoxr-ThinkPad-E450:~/linux/lib$ tree
.
├── add.c
├── add.o
├── libmylib.so
├── mul.c
└── mul.o0 directories, 5 files生成可执行文件
zhaoxrzhaoxr-ThinkPad-E450:~/linux/source$ gcc main.c ../lib/libmylib.so -o app -I ../head/ zhaoxrzhaoxr-ThinkPad-E450:~/linux/source$ tree
.
├── app
└── main.c0 directories, 2 fileszhaoxrzhaoxr-ThinkPad-E450:~/linux/source$ ./app
ab19,a*b905. 动态库的优缺点
\qquad优点执行程序的体积小动态库更新了不需要重新编译程序。 \qquad缺点发布程序时需要把动态库提供给用户动态库没有加载到应用程序中所以加载速度会比静态库慢一些。