小记UNIX编程库调用.
更好的文章:http://www.cppblog.com/deane/articles/165216.html
静态库生成:(举例加法库)
1.编程源程序 add.h add.c
2.编译源程序,生成add.o文件
3. ar -r lib库名.a=====>libadd.a
调用静态库时,需要库文件和头文件.静态库调用步骤:
1.写调用的源程序 (test.c),保存退出.
2.编译代码,生成.o文件 test.o
3.链接test.o 和静态库;链接方式有三种:(假设库文件和和test在一个目录)
a) gcc test.o lib名字.a(直接连) : gcc test.o libadd.a
b) 先配置环境变量LIBRARY_PATH,把静态库文件所在的路径配置进去,然后
gcc test.o -l 库名字(库名字去掉lib和.a): gcc test.o -l add
c) gcc test.o -l 库名字 -L 库路径. : gcc -test -l add -L .
共享库生成步骤:
1.编写源程序然后保存退出 add.h add.c
2.编译源程序 生成.o 文件: gcc -c -fpic 源程序 (-fpic不写也行) :gcc -c add.c
3. gcc -shared add.o -o lib名字.so
共享库使用步骤:(需要提供头文件和库文件)
1.编写源程序 test.c
2.编译源程序生成.o文件:gcc -c test.c
3.调用共享库:(共享库在运行时需要额外配置环境变量LD_LIBRARY_PATH,链接方式和静态库一样.
1.配环境变量LD_LIBRARY_PATH 把库文件路径设置进环境变量.
2.加载命令和静态库一样.
如: gcc test.o -l add -L .
最新文章
- MVC中路由
- PHP数组函数: array_walk()与 array_map() 的区别
- [MISS静IOS开发原创文摘]-AppDelegate存储全局变量和 NSUserDefaults standardUserDefaults 通过模型保存和读取数据,存储自定义的对象
- [翻译]Primer on Cognitive Computing(认知计算入门)
- [PAT]求集合数据的均方差(15)
- AlgorithmVisualizer
- Python第一天-----简单登录验证
- 组队练习赛(Regionals 2012, North America - East Central NA)
- Light OJ 1316 A Wedding Party 最短路+状态压缩DP
- Cdoefroces #354
- SpringMVC强大的数据绑定(2)——第六章 注解式控制器详解
- 笔记︱范数正则化L0、L1、L2-岭回归&;Lasso回归(稀疏与特征工程)
- [转]nodeJs--koa2 REST API
- ArrayList 和LinkedList的区别?
- git更新提交代码常用命令
- Spring Boot 数据库连接池 Druid
- ubuntu16 64位 编译64位程序和32位程序
- daofu
- leecode第四十六题(全排列)
- lua闭包
热门文章
- [AngularJS] ngMessageFormat
- Linux crontab 命令详解(含配置文件路径)
- Java基础知识强化84:System类之exit()方法和currentTimeMillis()方法
- C#链接远程SQL 服务器方法
- nyoj 42
- Android NDK编程,引入第三方.so库
- Microsoft Office 2007 Professional Plus+ 正版密钥
- smokeping报错Can't locate RRDs.pm in @INC (@INC contains
- 如何解决Windows 7的多重网络问题
- goldengate单向复制文档