当前位置:   article > 正文

[Makefile应用] --- Makefile编译动态库并使用_ubuntu makefile so

ubuntu makefile so

0. 引言

本篇blog写作的目的:

  1. 生一个项目中成一个简单的动态库
  2. 在另一个项目中使用这个简单的动态库

开发环境:Ubuntu1804
开发语言:C++
重点的Makefile的使用

1. 静态库/动态库的基本知识

不管是 Linux 还是 Windows 中的库文件其本质和工作模式都是相同的,只不过在不同的平台上库对应的文件格式和文件后缀不同。程序中调用的库有两种 静态库和动态库,不管是哪种库文件本质是都是二进制的源文件。

在项目中使用库一般有两个目的,一个是为了使程序更加简洁不需要在项目中维护太多的源文件,另一方面是为了源代码保密,毕竟不是所有人都想把自己编写的程序开源出来。

当我们拿到了库文件(动态库、静态库)之后要想使用还必须有这些库中提供的 API 函数的声明,也就是头文件,把这些都添加到项目中,就可以快乐的写代码了。

2. 在一个项目中生成.so文件

本项目以计算器为示例,包括4个.c文件,以及一个头文件,目录结构如下:
在这里插入图片描述add.c

#include "head.h"

int add(int a, int b)
{
   
        return a + b;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

div.c

#include "head.h"

double div(int a, int b)
{
   
        return a / b;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

mul.c

#include "head.h"

int mul(int a, int b)
{
   
        return a * b;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

sub.c

#include "head.h"

int sub(int a, int b)
{
   
        return a - b;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

include.h


                
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号