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;

}