linux C 生成与使用 so 文件
来源:互联网 发布:问卷调查软件 编辑:程序博客网 时间:2024/04/30 02:45
// test.c-------------------------------------#include "test.h"int a(){printf("a");return 0;}int b(){printf("b");return 0;}//test.h------------------------------------------------------#include <stdio.h>int a();int b();
再着编译 test.c
gcc test.c -fPIC -shared -o libtest.so
下面是调用libtest.so 的代码(mm.c):
//mm.c#include "test.h"int main(){a();b(); return 0;}
-fPIC:表示编译为位置独立的代码,不用此选项的话编译后的代码是位置相关的所以动态载入时是通过代码拷贝的方式来满足不同进程的需要,而不能达到真正代码段共享的目的。
-L.:表示要连接的库在当前目录中
-ltest:编译器查找动态连接库时有隐含的命名规则,即在给出的名字前面加上lib,后面加上.so来确定库的名称
LD_LIBRARY_PATH:这个环境变量指示动态连接器可以装载动态库的路径。
如果运行 mm 这个文件时,找不到so ,就要在LD_LIBRARY_PATH 这个环境变量设置so所在的目录
eg: exportLD_LIBRARY_PATH=~/myso
(假如的工作目录是: ~/myso,编译生成的so,与test.h,test.c ,mm.c都在这里)
- linux C 生成与使用 so 文件
- Linux动态库.a与动态库.so的生成与区别、以及.so库文件的封装与使用
- Linux下静态库.a与.so库文件的生成与使用
- linux .c文件生成库文件的方法与使用
- LINUX下PHP生成并调用C的.so文件
- Linux下生成.so文件
- Linux 下使用gcc生成so(动态链接库)文件
- Linux下so文件的生成和使用
- linux .so 生成与调用
- Linux下动态库so的生成与使用
- Linux下动态库so的生成与使用
- Linux下动态链接库so的生成与使用
- Linux下动态库so的生成与使用
- .so 的生成与使用
- android studio 编译C生成.so文件
- android studio编译c生成.so文件
- android studio 编译C生成.so文件
- AS编译c/c++生成so文件
- vmware:Cannot open the disk 'XXX' or one of the snapshot disks it depends on. reason: failed to lock
- 数组重载加减
- [精通WindowsSocket网络开发-基于VC++实现]第四章——阻塞模式开发
- hashlib简介
- Mac OS查看二进制文件工具
- linux C 生成与使用 so 文件
- leetcode代码分类汇总之-树
- POJ-1004-Financial Management
- vim基本使用方法
- Win7-64位 安装oracle10g 出现异常:Unknown host specified
- (csdn内转载)hbase完全分布式环境搭建
- TextView drawableLeft ,android:duplicateParentState ,Activity四种launch类型
- JAVA-第三天
- hdu acmsteps 2-1-3相遇周期