Linux 动态/静态链接库
来源:互联网 发布:大连淘宝运营培训 编辑:程序博客网 时间:2024/05/18 03:31
Windows 和 Linux上的动态库,静态库的概念基本一致, 在使用上也是有很多相似之处的。
1. 静态链接库的创建和使用:
(1) 在mylib.h中声明所要导出的函数.
#ifndef HELLO_H
#define HELLO_H
void hello(const char *name);
#endif //HELLO_H
(2) 在mylib.c 中实现该函数:
#include <stdio.h>
#include "mylib.h"
void hello(const char *name)
{
printf("Hello %s!/n", name);
}
(3) 编译mylib.c生成目标文件:
gcc -o mylib.o -c mylib.c
(4) 将目标文件加入到静态库中,
ar rcs libmylib.a mylib.o //使用ar命令来创建和修改静态库。
(5) 将静态库拷贝到Linux的库目录下(/usr/lib 或 /lib)
cp libmylib.a /usr/lib/
(6) 调用库函数:
#include <stdio.h>
void hello(const char *name)
{
printf("Hello %s!/n", name);
}
编译命令:gcc -o test test.c -lmylib
mylib 是库libmylib.a的中间部分。静态库通常以Lib开头,.a 结束。
2.动态库的创建和使用:
(1) 编译生成 .so 文件:
gcc -fPIC -shared -o libmylib.so mylib.c
(2) 两种方式调用动态链接库中的函数。
- 和静态库一样,使用gcc命令:
gcc -o test test.c /usr/lib/libmylib.so
- 通过系统函数来使用动态链接库。这与windows 中的使用如出一辙。
编译命令: gcc -o testso testso.c -ldl
可以看到 dlopen; dlsym; dlclose 分别对应windows 中的LoadLibrary; GetProcAddress; FreeLibrary
- Linux静态/动态链接库
- Linux 动态/静态链接库
- Linux静态链接库,动态链接库,动态加载库
- [Linux]链接,静态库和动态库
- Linux链接,静态库和动态库
- [Linux]链接,静态库和动态库
- [Linux]链接,静态库和动态库
- Linux 静态与动态链接库
- LINUX 下动态,静态链接库实战
- linux静态动态链接库备忘
- so-a--linux---静态--动态--链接库
- 简介 Linux 静态与动态链接库
- 简介 Linux 静态与动态链接库
- Linux 静态、动态链接库编译
- [Linux]动态链接库静态替换
- linux静态链接库与动态链接库
- Linux 动态链接库以及静态链接库
- Linux中的动态链接库与静态链接库
- plug-in插件和struts框架验证
- 正则表达式小贴士
- 完全自定义Firefox浏览器窗口大小的方法
- android------权限
- Android Service 介绍
- Linux 动态/静态链接库
- Differ Between PostgreSQL's pg_cancel_backend pg_terminate_backend function
- linux下编译安装与卸载 tar.gz文件
- 不能用的文件名
- Linux 常用命令整理
- mysql 用load data 导入数据时,数据被截断问题
- c程序基本算法百例之八—借书方案知多少
- poj 1236(tarjan算法)
- 荒凉