目录
一、GCC生成静态库.a与动态库.so
(1)准备过程
1.创建目录
2.创建代码
hello.h
#ifndef HELLO_H
#define HELLO_H
void hello(const char *name);
#endif//HELLO_H
hello.c
#include<stdio.h>
void hello(const char *name)
{
printf("Hello %s\n",name);
}
main.c
#include"hello.h"
int main()
{
hello("everyone");
return 0;
}
3.得到.o文件
(2)静态库使用
1.创建与使用静态库
创建静态库的工具:ar
命名规范:以lib作为前缀,是.a文件
ar -crv libmyhello.a hello.o
gcc -o hello main.c -L. -lmyhello
gcc main.c libmyhello.a -o hello
main.o gcc -c main.c
gcc -o hello main.c libmyhello.a
(3)验证静态库的特点
在删掉静态库的情况下,运行可执行文件,发现程序仍旧正常运行,表明静态库跟程序执行没有联系。同时,也表明静态库是在程序编译的时候被连接到代码中的。
(3)使用动态库
注意:
创建动态库的工具:gcc
动态文件命名规范:以lib作为前缀,是.so文件
gcc编译得到.o文件 gcc -c hello.c
创建静态库 ar -crv libmyhello.a hello.o
创建动态库 gcc -shared -fPIC -o libmyhello.so hello.o
使用库生成可执行文件 gcc -o hello main.c -L. -lmyhello
执行可执行文件 ./hello
二、使用作业一代码做静态库,动态库比较
1.代码
sub1.c