静态库与动态库的创建与使用
来源:互联网 发布:yy动态头像源码 编辑:程序博客网 时间:2024/06/09 14:33
静态库的制作
使用gcc -c file1.c 编译所有c文件
gcc -c file1.c gcc -c file2.c .... gcc -c fileN.c ar -rcs libname.a file1.o file2.o ... fileN.o
然后使用ar -rcs libname.a file1.o file2.o … fileN.o将编译后的.o文件打包成静态库。
/*将link.c制作成静态库*/[nick@XQLY test]$ lslinker.c linker.h main.c/*编译linker.c*/[nick@XQLY test]$ gcc -c linker.c [nick@XQLY test]$ lslinker.c linker.h linker.o main.c/*生成静态库libmyfristlib.a */[nick@XQLY test]$ ar -rcs libmyfristlib.a linker.o[nick@XQLY test]$ lslibmyfristlib.a linker.c linker.h linker.o main.c
静态库的使用
使用命令gcc main.c -L. -lmyfristlib -I. -o link.out
-L(大写L)指定路径
-l(小写L)指定库,后只用跟库名name.
-I(大写I)指定头文件路径
-o(小写o)指定输出文件名
[nick@XQLY test]$ lslibmyfristlib.a linker.h main.c[nick@XQLY test]$ gcc main.c -L. -lmyfristlib -I. -o link.out[nick@XQLY test]$ lslibmyfristlib.a linker.h link.out main.c[nick@XQLY test]$ ./link.outadd[10]add[9]add[8]add[7]add[6]add[5]add[4]add[3]add[2]add[1]
动态库的制作
使用gcc -shared -fPIC -o libname.so *.c命令
[nick@XQLY test]$ lslinker.c linker.h main.c/*生成动态库libmyfristlib.so */[nick@XQLY test]$ gcc -shared -fPIC -o libmyfirstlib.so linker.c[nick@XQLY test]$ lslibmyfirstlib.so linker.c linker.h main.c
动态库的使用
编译同静态库命令
[nick@XQLY test]$ gcc main.c -o link.out -L. -lmyfirstlib -I.[nick@XQLY test]$ lslibmyfirstlib.so linker.h link.out main.c[nick@XQLY test]$ ./link.out./link.out: error while loading shared libraries: libmyfirstlib.so: cannot open shared object file: No such file or directory
但这里出现了一个错误,这个错误是因为我们自己建的动态库不在系统动态库路径里。可以通过拷贝到系统路径里后执行,或者通过修改环境变量LD_LIBRARY_PATH来通知系统。
[nick@XQLY test]$ export LD_LIBRARY_PATH=.[nick@XQLY test]$ ./link.outadd[10]add[9]add[8]add[7]add[6]add[5]add[4]add[3]add[2]add[1]
完。
阅读全文
0 0
- 静态库与动态库的创建与使用
- 静态库与动态库的创建与使用
- Linux静态库和动态库的创建与使用
- 静态库与动态库的创建和使用
- linux---静态库与动态库的创建、生成、使用
- 动态库与静态库的创建
- Qt 创建与使用动态库与静态库
- 动态链接库(.dll、.lib)与静态链接库(.lib)的创建与使用
- VC++动态库和静态库创建与使用
- VC++动态库和静态库创建与使用
- Linux动态库/静态库创建与使用
- Linux 静态与动态库创建及使用实例
- Linux静态库的创建与使用
- windows 静态库的创建 与 使用
- linux静态库的创建与使用
- 静态库的创建与使用
- 2-静态库的创建与使用
- iOS - 静态库的创建与使用
- 自动化WiFI钓鱼工具——WiFiPhisher源码解读
- Check if Qcom speaker playback algorithms is removed for opalum speaker tuning
- Generator的基本用法
- 有限状态机设计
- 硅谷企业SaaS服务教父:如何衡量与优化SaaS企业的核心指标
- 静态库与动态库的创建与使用
- java日志文件log4j.properties配置详解
- 编程挑战:找一个字符串中最长的单词
- 109. Convert Sorted List to Binary Search Tree
- 页面中文传到后台再传到页面编码
- 机器学习技法课程学习笔记4 -- Soft-Margin Support Vector Machine
- log4j:WARN Please initialize the log4j system properly解决办法
- PG中支持两阶段提交协议
- 检测评价函数 intersection-over-union ( IOU )