我是靠谱客的博主 玩命身影,最近开发中收集的这篇文章主要介绍编写简单的add/sub/mul/div函数,并打包成动/静态库,并分别使用。,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

//代码
add.h
#ifndef _ADD_H
#define _ADD_H
int myadd(int x,int y);
#endif
add.c
#include<stdio.h>
#include"add.h"
int myadd(int x,int y)
{
    return x+y;
}
sub.h
#ifndef _SUB_H
#define _SUB_H
int mysub(int x,int y);
#endif
sub.c
#include<stdio.h>
#include"sub.h"
int mysub(int x,int y)
{
    return x-y;
}
mul.h
#ifndef _MUL_H
#define _MUL_H
int mymul(int x,int y);
#endif
mul.c
#include<stdio.h>
#include"mul.h"
int mymul(int x,int y)
{
    return x*y;
}
div.h
#ifndef _DIV_H
#define _DIV_H
int mydiv(int x ,int y);
#endif
div.c
#include<stdio.h>
#include"div.h"
int mydiv(int x,int y)
{
    return x/y;
}
test.c
#include<stdio.h>
#include"add.h"
#include"sub.h"
#include"mul.h"
#include"div.h"
int main()
{
    int x = 10;
    int y = 20;
    int c = myadd(x,y);
    int h = mysub(x,y);
    int m = mymul(x,y);
    int d = mydiv(x,y);
    printf("%dt%dt%dt%dn",c,h,m,d);
    return 0;
}

静态库:生成

[root@du lib.a]# gcc -c add.c -o add.o
[root@du lib.a]# gcc -c sub.c -o sub.o
[root@du lib.a]# gcc -c mul.c -o mul.o
[root@du lib.a]# gcc -c div.c -o div.o
[root@du lib.a]# ar -rc libmymath.a  add.o sub.o mul.o div.o
[root@du lib.a]# ls
add.c  add.h  add.o  div.c  div.h  div.o  libmymath.a  mul.c  mul.h  mul.o  sub.c  sub.h  sub.o  test.c

静态库:使用

[root@du lib.a]# mkdir test
[root@du lib.a]# cd test/
[root@du test]# cp ../*.h .
[root@du test]# ls
add.h  div.h  mul.h  sub.h
[root@du test]# cp ../test.c .
[root@du test]# ls
add.h  div.h  mul.h  sub.h  test.c
[root@du test]# cp ../libmymath.a  .
[root@du test]# ls
add.h  div.h  libmymath.a  mul.h  sub.h  test.c

新建一个文件test,将所有的头文件和test.c文件和libmymath.a文件拷贝至test文件,

[root@du test]# gcc test.c -L. -lmymath
//生成可执行的a.out文件
[root@du test]# ls
add.h  a.out  div.h  libmymath.a  mul.h  sub.h  test.c

-L:指定库路径

-l:指定库名

动态库:生成

[root@du lib.so]# ls
add.c  add.h  div.c  div.h  mul.c  mul.h  sub.c  sub.h  test.c
[root@du lib.so]# gcc -fPIC -c add.c sub.c mul.c div.c
[root@du lib.so]# gcc -shared -o libmymath.so *.o
[root@du lib.so]# ls
add.c  add.h  add.o  div.c  div.h  div.o  libmymath.so  mul.c  mul.h  mul.o  sub.c  sub.h  sub.o  test.c

shared:表示生成共享库格式

fPIC:产生位置无关码

库名规则:libxxx.so

l:链接动态库,只要库名即可(去掉lib及版本号)

L:链接库所在路径

动态库:使用

将此目录下的libmymath.so文件拷贝至/usr/lib目录下

[root@du lib]# cp /home/duyuetao/code/practice/code/lib.so/libmymath.so  .
[root@du lib]# ls
alsa      debug      gcc         java-1.7.0   jvm-exports  libmymath.so    mozilla         sendmail      
binfmt.d  dracut     grub        java-1.8.0   jvm-private  locale          NetworkManager  cpp      
[root@du lib.so]# gcc test.c -lmymath
[root@du lib.so]# ls
add.c  add.h  add.o  a.out  div.c  div.h  div.o  libmymath.so  mul.c  mul.h  mul.o  sub.c  sub.h  sub.o  test.c


最后

以上就是玩命身影为你收集整理的编写简单的add/sub/mul/div函数,并打包成动/静态库,并分别使用。的全部内容,希望文章能够帮你解决编写简单的add/sub/mul/div函数,并打包成动/静态库,并分别使用。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部