linux C复习:静态库的使用

库的概念:

   将多个目标文件打包到一起,形成一个文件就叫库(library)

创建静态库:

    创建源文件:mymath.c

double add(double a,double b)
{
      return a + b;
}

double sub(double a,double b)
{
      return a - b;
}

   生成目标文件:

   gcc -c mymath.c                    //生成mymath.o文件

 

   创建源文件:view.c

#include <stdio.h>

void print(double d)
{
      printf("%d\n",d);
}


   生成目标文件:

   gcc -c view.c                       //生成view.o

 

使用命令 ar -r 将目标文件打包成j静态库

   arr -r libmyku.a  mymath.o view.o                       //生成的库必去以lib开头,库名为myku

 

   创建头文件mymath.h,用来声明函数:在C语言中调用函数必须声明函数,预防隐式声明的发生

#ifndef MYMATH_H
#define MYMATH_H

double add(double,double);
double sub(double,double);
void print(double);

#endif

 

   编写测试程序:test.c

//在调用函数前首先声明函数,防止函数的隐式声明
#include "mymath.h"

main(void)
{
     int p = 3;
     int c = 5;

    //注意函数的隐式声明
    //在调用函数前首先声明函数,防止函数的隐式声明
     //double add(double,double);
     //double sub(double,double);
     double res = add(p,c);
     double res2 = sub(c,p);

     print(res);
     print(res2);
}


   编译测试文件test.c

   gcc -c test.c -I .                                                       //生成test.o ;指定头文件的查找路径为当前目录使用 -I

 

使用静态库

 两种使用方式:

 1)直接使用gcc将test.o与静态库连接libmyku.a连接

    gcc test.o libmyku.a -o test                                 //生成test可执行文件

 2)使用环境变量指定静态库的路径:export LIBRARY_PATH = .     //指定静态库的路径为当前路径

    使用 gcc -l 指定库名:

    gcc test.o -l myku -o test                                    //连接 指定库名(libmyku.a:库名为myku),生成可执行程序:test

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值