step1: creat hello.o 二制连接文件 通过命令 gcc -c hello.c
step2: 在当前目录下生成hello的静态库 ar crv libtest.a hello.o
libtest.a 为hello.o生成的静态库连接文件 而且静态库的后缀为".a", 库名前面必需以“lib”开头
step3: 编译main.c, gcc -o hello main.c -L. -ltest
"-L." -L 为连接库在哪个dir的关键字 后面跟的是目录DIR 注意:这个不需要跟具体文件,具体文件有另外关键字
"-l" -l 为连接哪个库的关键字
“test”,由于默认静态库的开头为"lib",在实际编译文件的时候不需要LIB直接库名
注意:编译程序后,静态库会加在可执行文件内,即使删除静态库,可执行文件依然可以执行;
//hello.h 头文件
#ifndef HELLO_H
#define HELLO_H
void hello(const char **);
#endif // end hello.h
//hello.c 函数实现文件
#include<stdio.h>
void hello(const char **str)
{
printf("string:%s\n",*str);
}
//main.c 主程序文件
#include"hello.h"
int main(void)
{
const char *pstr = "hello world";
hello(&pstr);
return 0;
}