Linux共享库so文件类似于Windows的dll文件,首先讲一下so文件的创建过程
将Test.c文件编译成libtest.so文件,test.c文件内容如下:
int max(int a,int b)
{
return a>b?a:b;
}
int add(int a,int b)
{
return a + b;
}
~
~
主要还是看makefile文件的内容将.c文件编译成.so文件
编译成.so文件名需要以lib开头.so结尾,然后我们需要些.h文件告诉调用方so文件的内容 test.h头文件的内容如下:
#ifndef TEST_H_
#define TEST_H_
#ifdef __cplusplus
extern "C"
{
#endif
int max(int a,int b);
int add(int a,int b);
#ifdef __cplusplus
}
#endif
#endif
~
到这so文件的创建基本完成 下面就介绍一下so文件的使用
#include <stdlib.h>
#include <stdio.h>
#include "test.h"
int main(void)
{
printf("max number :%d\n",max(8,10));
printf("add number;%d\n",add(8,10));
return EXIT_SUCCESS;
}
~
~
~
~
关键需要看makefile编译文件内容:
参数-L.就是在本地目录下找libtest.so文件 我们需要把libtest.so文件放在/usr/lib目录下就可以运行