介绍GCC生成静态库.a和动态库.so及其实例使用
一、用gcc生成.a静态库和.so动态库
1、例子1 hello程序讲解
① 创建目录并编辑生成例子程序 hello.h、hello.c 和main.c
(1)例子程序hello.h
#ifndef HELLO_H
#define HELLO_H
void hello(const char *name);
#endif
(2)例子程序 hello.c
#include<stdio.h>
void hello(const char *name)
{
printf("Hello %s\n",name);
}
(3)例子程序 main.c
#include"hello.h"
int main()
{
hello("everyone");
return 0;
}
(4)将hello.c编译成.o文件
gcc -c hello.c
提示:文件编辑可用 vim、nano、gedit等
②gcc生成静态库并使用
(1) 创建静态库
静态库文件名规范格式:lib为前缀,紧跟静态库名,扩展名为.a。 创建静态库用ar命令。
ar -crv libmyhello.a hello.o
如图所示:
(2)使用静态库
方法一:gcc -o hello main .c -L -lmyhello
提示:main.c还可以放在-L.和-lmyhello之间,但是不能放在它俩之后,否则myhello没有定义。
-L:表示连接的库在当前目录
如图所示:
方法二:gcc main.c libmyhello.a -o hello
如图所示:
方法三:先生成 main.c:gcc -c main.c
再生成可执行文件:gcc -o he