栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

练习静态库.a文件与动态库.so文件的生成与使用

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

练习静态库.a文件与动态库.so文件的生成与使用

目录
  • 一、扩写程序
  • 二、静态库.a文件的生成与使用
  • 三、共享库.so文件的生成与使用

接上篇博文 Ubuntu16.04系统中分别使用gcc与makefile编译C语言程序。

一、扩写程序

程序一:sub2.h

#ifndef __SUB1_H
#define __SUB1_H

#include "stdio.h"

float x2y(int a,int b);

#endif

程序二:sub2.c

include "sub2.h"

float x2y(int a,int b)
{
      float x;
      x=(float)a*b;
      return x;
}

程序三:main.c

#include "stdio.h"
#include"sub1.h"
#include"sub2.h"
int main()
{
     int a=3;
     int b=7;
     printf("a/b=%f",x2x(a,b));
     printf("a/b=%f",x2y(a,b));
     return 0;
}

二、静态库.a文件的生成与使用

1).生成.o文件

gcc -c sub1.c sub2.c main.c

2).生成静态库.a文件

ar crv libafile.a sub1.o sub2.o 

3)使用静态库.a文件,创建可执行程序

gcc -o main main.c libsub.a
./main


三、共享库.so文件的生成与使用

1).生成.o目标文件(此处生成.o 文件必须添加"-fpic"(小模式,代码少),否则在生成.so 文件时会出错)

gcc -c -fpic sub1.c sub2.c

2).生成共享库.so 文件

gcc -shared *.o -o libsub.so

3).使用.so 库文件,创建可执行程序

gcc -o main main.c libsub.so
sudo cp libsub.so /usr/lib
./main

可以看见.so文件比.a文件大。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/304102.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号