做网站销售好做吗,全网营销整合推广,网站建立时间,学做彩票网站有哪些1.静态库的制作
1.1静态库的命名 \qquad静态库一律使用lib打头#xff0c;静态库名为#xff1a;lib静态库的名字.a。比如#xff1a;libmylibrary.a#xff0c;这里面lib和.a是必须要有的。使用nm命令可以查看静态库。
nm 静态库名1.2静态库的制作步骤 \qquad第一步静态库名为lib静态库的名字.a。比如libmylibrary.a这里面lib和.a是必须要有的。使用nm命令可以查看静态库。
nm 静态库名1.2静态库的制作步骤
\qquad第一步将.c文件生成.o文件比如将hello.c转变为hello.o文件。
gcc -c hello.c -o hello.o\qquad或者
gcc hello.c -c\qquad第二步使用ar将生成的.o文件打包
ar rcs 静态库的名字 生成的所有.o文件1.3发布和使用静态库
gcc filename.c 静态库的路径/静态库名 -o 可执行文件名 -I 头文件的路径\qquad或者
gcc filename.c -I 头文件路径 -L 静态库路径 -l 静态库名 -o 可执行文件名2.静态库的优缺点
2.1静态库的优点
\qquad 1.发布的程序即编译完成后的可执行文件不再需要库函数。 \qquad 2.加载库的速度快
2.2静态库的缺点
\qquad 1.库被打包到应用程序中导致应用程序体积变大。 \qquad 2.库如果发生了改变需要重新编译。
3.静态库制作实例
源代码目录
zhaoxrzhaoxr-ThinkPad-E450:~/linux$ tree
.
├── head
│ ├── add.h
│ └── mul.h
├── lib
│ ├── main.c
│ └── mul.c
└── source└── add.c3 directories, 5 files生成静态库 这里的静态库不包含主函数的.c文件只是把实现打包成静态库 首先将功能模块的.c文件编译为.o文件
zhaoxrzhaoxr-ThinkPad-E450:~/linux/lib$ gcc -c add.c -o add.o
zhaoxrzhaoxr-ThinkPad-E450:~/linux/lib$ gcc -c mul.c -o mul.ozhaoxrzhaoxr-ThinkPad-E450:~/linux/lib$ tree
.
├── add.c
├── add.o
├── mul.c
└── mul.o0 directories, 4 files然后生成静态库
zhaoxrzhaoxr-ThinkPad-E450:~/linux/lib$ ar rcs libmylib.a add.o mul.ozhaoxrzhaoxr-ThinkPad-E450:~/linux/lib$ tree
.
├── add.c
├── add.o
├── libmylib.a
├── mul.c
└── mul.o0 directories, 5 files生成可执行文件
zhaoxrzhaoxr-ThinkPad-E450:~/linux/source$ gcc main.c ../lib/libmylib.a -o app -I ../head/zhaoxrzhaoxr-ThinkPad-E450:~/linux$ tree
.
├── head
│ ├── add.h
│ └── mul.h
├── lib
│ ├── add.c
│ ├── add.o
│ ├── libmylib.a
│ ├── mul.c
│ └── mul.o
└── source├── app└── main.c3 directories, 9 fileszhaoxrzhaoxr-ThinkPad-E450:~/linux/source$ ./app
ab19,a*b90