C语言创建静态链接库和动态链接库并引用

  • Post author:
  • Post category:其他


一、生成静态链接库并应用

1.首先,创建一个c文件

root@ubuntu:~/c# cat fun.c 
#include<stdio.h>


int fun(int a,int b)
{
        return a*b;
}
root@ubuntu:~/c# cat fun.h
#ifndef _FUN_H_
#define _FUN_H_

int fun(int a,int b);


#endif

2.然后,将fun.c打包成静态库

①.gcc -c fun.c -o fun.o       //生成二进制文件

②.ar -rc libfun.a fun.o    //打包成静态库

3.调用,在main.c中调用

#include<stdio.h>
#include"fun.h"

int main(void)

{
        int a =4;
        int b =5;
        printf("a*b=%d\n",fun(a,b));
        return 0;

}

4.编译,gcc main.c -o main -I. -lfun -L.

5.成功引用。

二、生成动态链接库并引用



-shared 为链接库  让编译器知道是要编译一个共享库




-fPIC(Position Independent Code)   编译生成代码与位置无关


1.将上面的例子继续使用直接进行编译


gcc -c -fPIC -shared

fun.c -o libfun.so

2.进行 调用

gcc main.c -o main -L. -lfun

3,调用成功。



版权声明:本文为TJH_I_CAN原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。