更好的文章: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 .

最新文章

  1. MVC中路由
  2. PHP数组函数: array_walk()与 array_map() 的区别
  3. [MISS静IOS开发原创文摘]-AppDelegate存储全局变量和 NSUserDefaults standardUserDefaults 通过模型保存和读取数据,存储自定义的对象
  4. [翻译]Primer on Cognitive Computing(认知计算入门)
  5. [PAT]求集合数据的均方差(15)
  6. AlgorithmVisualizer
  7. Python第一天-----简单登录验证
  8. 组队练习赛(Regionals 2012, North America - East Central NA)
  9. Light OJ 1316 A Wedding Party 最短路+状态压缩DP
  10. Cdoefroces #354
  11. SpringMVC强大的数据绑定(2)——第六章 注解式控制器详解
  12. 笔记︱范数正则化L0、L1、L2-岭回归&Lasso回归(稀疏与特征工程)
  13. [转]nodeJs--koa2 REST API
  14. ArrayList 和LinkedList的区别?
  15. git更新提交代码常用命令
  16. Spring Boot 数据库连接池 Druid
  17. ubuntu16 64位 编译64位程序和32位程序
  18. daofu
  19. leecode第四十六题(全排列)
  20. lua闭包

热门文章

  1. [AngularJS] ngMessageFormat
  2. Linux crontab 命令详解(含配置文件路径)
  3. Java基础知识强化84:System类之exit()方法和currentTimeMillis()方法
  4. C#链接远程SQL 服务器方法
  5. nyoj 42
  6. Android NDK编程,引入第三方.so库
  7. Microsoft Office 2007 Professional Plus+ 正版密钥
  8. smokeping报错Can't locate RRDs.pm in @INC (@INC contains
  9. 如何解决Windows 7的多重网络问题
  10. goldengate单向复制文档