文档章节

c 静态库与动态库

memristor
 memristor
发布于 2014/05/31 16:40
字数 342
阅读 23
收藏 0

创建库可以在多个程序中复用相同的代码

#include<>代表标准头文件,通常unix在/usr/local/include或/usr/include下寻找头文件, window在mingw下的include中寻找

#include"" 本地目录


如何共享.h 文件?

  1. 将头文件保存在标准库中,使用#include<>

  2. 在include语句中使用完整路径名, #include "/home/weiwei/clib/encrypt.h"

  3. 告诉编译器去哪里需找头文件 ,-Ixxx 意思除了默认头文件搜索路径(比/usr/include等)外同时还路径xxx下搜索需要被引用头文件.

用完整路径名共享.o目标文件


使用文件存档就可以一次性告诉编译器需要哪一批目标文件,更加方便,存档中包含多个.o文件

存档命令 ar

ar -rcs    r表示如果a文件存在,就更新,c表示创建文档时不显示反馈信息,s表示在创建a文件的时候建立索引

.a文件都是以lib开头的,存档是静态库,可以把存档保存在标准目录,也可以放在其他目录中

[weiwei@localhost lib]$ ar -rcs libstr.a encrypt.o len.o

静态库调用

[weiwei@localhost lib]$ gcc main.c -L/home/weiwei/Desktop/c/lib -lstr  -o main

-L选项告诉编译器去哪个目录去找 -l后面跟存档名


© 著作权归作者所有

共有 人打赏支持
memristor
粉丝 44
博文 203
码字总数 176319
作品 0
长沙
程序员
Head First C 第八章 静态库与动态库 创建动态库

Head First C 第八章 静态库与动态库 创建动态库 动态库是什么 静态库文件,需要在链接过程中和主程序链接在一起,如果你想改变某个部分的功能,或者发布不同版本,就需要修改这个代码并全部...

AlexTuan
2016/04/02
33
0
静态库和动态库

静态库和动态库 ASPIRE2017-01-1127 阅读 gccLinux =Start= 缘由: 补充系统知识 正文: 参考解答: 我们通常把一些公用函数制作成函数库,供其它程序使用(代码的复用)。函数库可分为静态库...

ASPIRE
2017/01/11
0
0
Linux下静态库和动态库(共享库)的制作与使用

Linux下静态库和动态库(共享库)的制作与使用 Linux操作系统支持的函数库分为静态库和动态库,动态库又称共享库。linux系统有几个重要的目录存放相应的函数库,如/lib /usr/lib。 静态函数库...

木雨山
2011/07/29
0
0
C语言库的制作

制作C语言库 编写头文件,在文件内声明要用到的函数, libh.h #include <stdio.h> // 两数相加 int add(int a, int b); // 绝对值 int mabs(int a); 编写c语言库源码文件, 在文件内定义之前...

首席撸起水泡
2016/01/08
71
0
JSP标签回顾

1.内置标签 a.请求转发: b.动态页面包含: 注:静态包含和动态包含的区别 1) 语法不同 静态包含语法: 动态包含语法: 2)参数传递不同 静态包含不能向被包含页面传递参数 动态包含可以向被包...

Mr_欢先生
2017/11/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

负载均衡的解决方案有哪些

负载均衡器服务可满足大型组织的需求,支持所有数据中心和跨数据中心高可靠性场景。 本地负载均衡,通过附带或者未附带持久性覆盖选项,Incapsula支持各种负载均衡算法,以优化服务器之间的流...

上树的熊
9分钟前
0
0
Java实现在线打开word文档加盖印章/盖章/签名功能

前言: 我们知道,大型一点的OA办公系统都会有很多在线处理office办公文档的需求。其中有一点也基本绕不开,那就是为文档盖章或添加手写签名来保护文档,让被盖章的文档不再被编辑。 在Java中...

山里的红杏
16分钟前
3
0
js控制输入正负数,小数点后保留两位

//限制数字function clearNoNum(obj){ //修复第一个字符是小数点 的情况. if(obj.value !=''&& obj.value.substr(0,1) == '.'){ obj.value=""; } obj.value ...

一直在成长的程序猿
19分钟前
1
0
动态代理

具体场景 为了使代理类与被代理类对第三方有相同的函数,代理类与被代理类一般实现一个公共的interface,定义如下 public interface Subject { void rent(); void hello(String s)...

wuyiyi
22分钟前
0
0
时间字段

我们看看这几个数据库中(mysql、oracle和sqlserver)如何表示时间 mysql数据库:它们分别是 date、datetime、time、timestamp和year。date :“yyyy-mm-dd”格式表示的日期值 time :“hh:...

DemonsI
24分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部