linux 库的创建与使用
来源:互联网 发布:华润置地薪酬 知乎 编辑:程序博客网 时间:2024/06/05 15:50
linux 库的概念
库是一种软件组件技术,库里面封装了数据和函数,提供给用户程序调用。库的使用可以使程序模块化,提高程序的编译速度,实现代码重用,使程序易于升级。
windows 系统本身提供并使用了大量的库,包括静态链接库(.lib文件)和动态链接库(.dll文件)。类似的,linux操作系统也使用库。linux系统中,通常把库文件存放在/usr/lib或/lib目录下。linux库文件名由前缀lib、库名以及后缀3部分组成,其中动态库以.so作为后缀,而静态库通常以.a作为后缀。
静态库的创建和使用
创建静态库的步骤如下:
(1)在一个头文件中声明静态库所导出的函数。
(2)在一个源文件中实现静态库所导出的函数。
(3)编译源文件,生成可执行代码。
(4)将可执行代码所在的目标文件加入到某个静态库中,并将静态库拷贝到系统默认的存放库文件的目录下。
实例说明:
头文件 mylib.h
#ifndef _mylib_h_#define _mylib_h_void welcome();void outstring(const char* str);#endif
源文件 mylib.c
#include "mylib.h"#include <stdio.h>void welcome(){ printf("welcome to libmylib\n");}void outstring(const char* str){ if(str != NULL) printf("%s",str);}
编译mylib.c 生成目标文件:
[xyk@xyk linking]$ gcc -o mylib.o -c mylib.c
将目标文件加入到静态库中,静态库为libmylib.a
[xyk@xyk linking]$ ar rcs libmylib.a mylib.o
将静态库拷贝到linux的库目录(/usr/lib 或/lib)下:
[root@xyk linking]# cp libmylib.a /usr/lib/libmylib.a
测试程序 test.c
#include <stdio.h>#include "mylib.h"int main(){ printf("create and use library:\n"); welcome(); outstring("It's successful\n");}编译使用了库函数的程序:
[xyk@xyk linking]$ gcc -o test test.c -lmylib
运行生成的可执行程序test:
[xyk@xyk linking]$ ./test
create and use library:
welcome to libmylib
It's successful
动态库的创建与使用
在linux环境下,可以很方便的创建和使用动态链接库。只要在编译函数库源程序时加上-shared选项即可,这样生成的可执行程序就为动态链接库。
实例说明:
[xyk@xyk linking]$ gcc -fPIC -shared -o libttt.so mylib.c
将静态库拷贝到linux的库目录(/usr/lib 或/lib)下:
[root@xyk linking]# cp libttt.so /usr/lib/libttt.so
使用动态链接:
[xyk@xyk linking]$ gcc -o test test.c /usr/lib/libttt.so
运行程序test:
[xyk@xyk linking]$ ./test
create and use library:
welcome to libmylib
It's successful
- linux 库的创建与使用
- linux 动态库的创建与使用
- Linux动态库的创建与使用
- Linux静态库的创建与使用
- linux静态库的创建与使用
- Linux静态库和动态库的创建与使用
- linux---静态库与动态库的创建、生成、使用
- LINUX系统中动态链接库的创建与使用
- LINUX系统中动态链接库的创建与使用
- LINUX系统中动态链接库的创建与使用
- linux动态链接库的创建与使用
- LINUX系统中动态链接库的创建与使用
- LINUX动态链接库的创建与使用
- LINUX系统中动态链接库的创建与使用
- LINUX系统中动态链接库的创建与使用
- LINUX系统中动态链接库的创建与使用
- LINUX系统中动态链接库的创建与使用
- Linux下静态库的创建与使用
- Ruby on Rails,Routes配置routes.rb及请求解析规则
- undefined reference to 'pthread_create'
- 由JDBC浅谈JNDI及其在WebSphere中的配置和企业级应用中DB Session在Spring下的管理
- linux GCC 64位编程技巧
- Android禁止横竖屏和解决切换屏幕时重启Activity的方法
- linux 库的创建与使用
- uclinux系统简介
- Linux crontab 命令格式与详细例子 .
- 内核中的多播
- NSClassFromString
- STL学习之输入、输出迭代器
- 关于android的sdk版本和分辨率
- Excel和OpenFileDialog
- PHP图表类PHPlot 5.5.0发布