linux c 链接库 so制作及调用
来源:互联网 发布:小米平板2windows版本 编辑:程序博客网 时间:2024/05/19 22:05
[文章作者:陈毓端 若转载请标注原文链接:http://blog.woyuw.com/?p=341]
最近的一个程序因为比较复杂,需要自己编写so动态链接库来给c语言程序调用。
下面就简单的写下so制作到调用的整个流程。
首先做个头文件
head.h:
/*
head.h
*/
#include
#include
void method_1(); //未设置参数
void method_2(char *s); // 设置了一个参数
method_1.c:
/*
method_1.c
*/
#include “head.h”
void method_1()
{
printf(”我是陈毓端,您执行的是方法1(method_1)”);
}
method_2.c
/*
method_2.c
*/
#include “head.h”
void method_2(char *s)
{
printf(”我是陈毓端,您执行的是方法2(method_2):%s”,s);
}
关键一步,生成so(动态链接库)
gcc head.h method_1.c method_2.c -fPIC -shared -o method.so
到现在 method.so 文件已经制做完毕。
接下来是调用
work_so.c
#include “stdio.h”
#include “stdlib.h”
#include “dlfcn.h”
int main()
{
void *SoLib;
int (*So)();
SoLib=dlopen(”./method.so”,RTLD_LAZY); //加载method.so
So = dlsym( SoLib, “method_1″); //声名method_1方法
(*So)( “” ); //执行method_1方法
So = dlsym(SoLib, “method_2″);
(*So)( “method_2″ ); //设置参数
}
编译 :
gcc work_so.c -o word_so -ldl
不出意外 结果为:
我是陈毓端,您执行的是方法1(method_1)我是陈毓端,您执行的是方法1(method_2):method_2
好了这个流程完毕。
- linux c 链接库 so制作及调用
- Java框架JNA调用C方法(windows链接库dll文件、linux链接库so文件)
- 把静态库链接进so库中及C++调用C
- Linux中关于JAVA调用C生成的.so动态链接库
- linux下生成so库及调用
- linux c调用链接库
- linux下调用动态链接库so文件
- Linux 下动态链接库 *.so(生成、调用)
- 调用动态链接库*.so
- linux下C语言编程动态库so的编写及调用
- Linux动态链接库.so的使用方法及代码优化
- 链接linux 动态so库
- 动态库*.so制作-linux
- linux下动态链接库(.so)的显式调用和隐式调用
- linux下动态链接库(.so)的显式调用和隐式调用
- linux下动态链接库(.so)的显式调用和隐式调用
- linux下动态链接库(.so)的显式调用和隐式调用
- linux下动态链接库(.so)的显式调用和隐式调用
- JUnit 4 in 60 Seconds(翻译)
- 计算机网络安全实验总结 本部分主要包括计算机网络操作系统的配置,网络扫描,网络监听,网络入侵。
- URL截取大全,各种URL截取,获取路径,操作url路径
- 视觉错觉的举例------------善于发现生活中的
- 传智播客学习笔记5.22
- linux c 链接库 so制作及调用
- Java HotSpot 虚拟机选项详解(标准选项)
- C/C++ 最长平台问题 算法
- mime类型大全
- 新来的
- 大家好,第一次来这里还希望大多帮助
- Java HotSpot 虚拟机选项详解(-X选项)
- Flash builder 网络监视器的使用感想
- python学习