Linux中静态库与动态库的制作
来源:互联网 发布:ubuntu搜狗输入法消失 编辑:程序博客网 时间:2024/04/28 06:46
库的命名规则
静态库:libxxx.a
动态库:libxxx.so
1.创建静态库
头文件la.h
#ifndef _LA_H_
#define _LA_H_
#include <stdio.h>
void testfun(void *str);
#endif
源文件la.c
#include "la.h"
void testfun(char *str)
{
puts("str");
}
编译:#gcc -c la.c -o la.o ------>la.o
#ar arc libmyla.a la.o ------>libmyla.a
主函数main.c
#include "la.h"
int main()
{
char str[]="helloworkd";
testfun(str);
}
编译:gcc main.c -o main -L. -lmyla ---->在当前文件下链接静态库文件
2.创建动态库:
头文件la.h
#ifndef _LA_H_
#define _LA_H_
#include <stdio.h>
void testfun(void *str);
#endif
源文件la.c
#include "la.h"
void testfun(char *str)
{
puts("str");
}
编译:#gcc -fPIC -Wall -c la.c -o la.o ---->la.o
#gcc -shared -o libmyla.so la.o ---->libmyla.so
主函数main.c
#include "la.h"
int main()
{
char str[]="helloworkd";
testfun(str);
}
三种方法加载:
<一>修改运行环境:---->目的是告诉动态加载器应该加载那个共享库
打开 /etc/ld.so.conf.d
新建一个mylib.conf 加入/program/test/ 这个就是libmyla.so所在的路径
刷新一下:ldconfig
编译:gcc main.c -L. -lmyla -o main //-L.表示加载当前文件夹得库
<二>修改运行环境:export LD_LIBRARY_PATH=/program/test/ 对当前有效
编译:gcc main.c -L. -lmyla -o main
<三>拷贝libmyla.so 到/lib下面 系统默认的库文件中
编译:gcc main.c -lmyla -o main
尊重作者,请转明来处:追Dream梦http://blog.csdn.net/pzhsunxu/article/details/7798301
- Linux中静态库与动态库的制作
- Linux静态库与动态库制作
- linux静态库与动态库制作
- Linux 动态库与静态库制作
- Linux下的动态库与静态库的制作
- Linux动态库与静态库的制作
- 静态库与动态库的制作
- Linux 动态库与静态库制作及使用详解
- Linux 动态库与静态库制作及使用详解
- linux下制作静态库与动态库
- linux下制作静态库与动态库
- Linux 动态库与静态库制作及使用详解
- Linux下制作动态库与静态库
- Linux 动态库与静态库制作及使用详解
- windows和Linux 动态库与静态库制作
- Linux 动态库与静态库制作及使用详解
- Linux 动态库与静态库制作及使用详解
- linux中静态库的制作
- 目前最细致清晰的NSDictionary以及NSMutableDictionary用法总结
- go第三方库的安装例子
- (android学习笔记)Android View
- Eclipse 常用快捷键 (动画讲解)
- 八皇后
- Linux中静态库与动态库的制作
- jQuery事件扩展机制
- Allegro PCB 图纸大小及坐标原点位置
- hdoj problem 1789 Doing Homework again(贪心问题+优先队列)
- Android - Activity类和Manager类的更新通信
- 0018算法笔记——【动态规划】流水作业调度问题与Johnson法则
- HDU 1425 Sort
- 《coredump问题原理探究》Linux x86版6.1节C++风格数据结构内存布局之无成员变量的类
- INT 13