Linux——动态库的编译

本文详细介绍了如何使用GCC编译器将C语言源码编译成动态库,并展示了如何链接并使用该动态库。从头文件的定义到源码的实现,再到编译指令的解释,最后是动态库的链接与运行结果,全程覆盖了动态库的创建与使用流程。

1.创建要编译成库的源码文件和头文件
头文件:

#ifndef _HELLO_H_
#define _HELLO_H_
#include<stdio.h>

void display_hello();

#endif

源码:

#include "hello.h" 

 void display_hello()
{
       printf("hello world!");
}

编译生成动态库:

gcc hello.c -fPIC -shared -o libhello.so
–fPIC:表示编译为位置独立的代码,不用此选项的话编译后的代码是位置相关的所以动态载入时是通过代码拷贝的方式来满足不同进程的需要,
而不能达到真正代码段共享的目的。
–shared:定义编译成动态库的名字

在这里插入图片描述
2.链接使用编译好的动态库
链接使用的代码

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

int main()
{
        display_hello();
        return 0;
}

gcc  main.c -o hello ./libhello.so

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值