Linux 开发 _ 动态静态库创建与 Makefile 规则
介绍 Linux 下静态库、动态库创建方式、完成静态库、动态库调用,贴出字符串处理、时间管理两个例子代码。
【1】查找文件:
[root@wbyq /]# find / -name stdio.h
【2】文本搜索工具:
# grep -q "12345" /123.c || echo "12345" >> /123.c
【3】文本修改工具:sed
【4】练习:
(1)制作动态库与静态库
(2)(扩展) 编写一个 find 功能的程序:可以查找指定目录下指定的文件。(关心多层目录)
(3)编写一个文本修改程序:可以修改指定文件中的内容。
(a) 将指定一行的内容全部替换为空格
(b) 将指定一个字符串替换为传入指定的字符串。./a.out /123.c 888 666
安装软件的命令:
[root@wbyq Packages]# rpm -ivh tree-1.5.3-2.el6.i686.rpm
任务 1:静态库与动态库
Linux 下库文件存放的位置: /lib (存放的是动态库)
.so 属于动态库, .a 属于静态库
动态库称为共享库:gcc 123.c -o app
共享库:程序在运行的时候去调用函数(载入函数)。
静态库:相关的函数在编译的时候就已经拷贝到目标中。
GCC 编译器的选项参数
生成动态库的指令
gcc -fPIC -shared -o <库文件名称>.so 源文件名称.c
库文件名称的命名规则: libxxx.so
调用动态库出现的错误:
【1】将 xxx.so 直接放到/lib 目录下。
【2】设置环境变量:LD_LIBRARY_PATH (存放系统库文件的搜索路径)
生成静态库。 xxx.a
如果在相同的目录下有静态库和动态库,优先使用动态库
# ar crv libsum.a sum.o
任务 2:Makefile
练习
【1】Makefile 自动化编译
只是创建 3 个目录,每个目录下各有一个.c 一个.h,一个 Makefile 文件
在顶层目录下创建一个 Makefile 文件,,实现自动化编译。
【2】Makefile 自动化编译
只是创建 3 个目录,每个目录下各有一个.c 一个.h
在顶层目录下创建一个 Makefile 文件,实现自动化编译。
任务 3: 字符串案例代码
查找字符串并替换为其他字符串:
模拟电子时钟
版权声明: 本文为 InfoQ 作者【DS小龙哥】的原创文章。
原文链接:【http://xie.infoq.cn/article/b5f5de2ff48550e152c93fdef】。文章转载请联系作者。
评论