1.静态库及共享库的创建和使用

静态库的创建与使用
生成静态库的指令 ar
-r 替换归档文件中已有的文件或加入新文件
-d 从归档文件中删除文件
-p 打印在归档文件中找到的文件
-t 显示归档文件中的内容
  • 打包命令
ar -r libbase.a add.o sub.o
  • 查看包中的内容
ar -t libbase.a
  • 完整的静态连接例子
1.编写源码
//文件名:add.c
int add(int a, int b) {
  return a + b;
}
gcc -c -static add.c -o add.o
2.打包
ar -r libbase.a add.o
3.使用
// 文件名:main.c
#include <stdio.h>
int add(int a, int b); // 使用函数当然要先声明啦。
int sub(int a, int b);
int main() {
  printf("3 + 1 = %d\n", add(3, 1));
  printf("3 - 1 = %d\n", sub(3, 1));
  return 0;
}
4.编译连接成最终可执行文件
gcc -c main.c -o main.o
连接:
gcc main.o libbase.a -o app
共享库的创建与使用
文件树如下:
.
  |-bin
  |-lib
  |-src
    |-add.c
    |-common.h
    |-main.c
    |-sub.c
//文件名:common.h
int add(int a, int b);
int sub(int a, int b);

//文件名: add.c
int add(int a, int b)
{
    return a+b;
}
//文件名: sub.c
int sub(int a, int b)
{
    return a-b;
}
// 文件名:main.c
#include <stdio.h>
#include "common.h"
int main() {
  printf("3 + 1 = %d\n", add(3, 1));
  printf("3 - 1 = %d\n", sub(3, 1));
}
  • 生成动态库的命令
gcc -c -fpic add.c sub.c
gcc -shared add.o sub.o -o ../lib/libbase.so
上面的命令执行完成后,会在 lib 目录下生成 libbase.so 文件
  • 使用动态库
 gcc -c main.c
 gcc main.o ../lib/libbase.so -o ../bin/app
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值