2019年1月3日
摘要: 伪目标是这样一个目标:它不代表一个真正的文件名,在执行make时可以指定这个目标来执行所在规则定义的命令,有时也可以将一个伪目标称为标签。伪目标通过 PHONY来指明。 PHONY定义伪目标的命令一定会被执行,下面尝试分析这种优点的妙处。 1、如果我们指定的目标不是创建目标文件,而是使用makefi 阅读全文
posted @ 2019-01-03 21:58 feng..liu 阅读(686) 评论(0) 推荐(0) 编辑
摘要: 在生成动态库时,常常习惯性的加上fPIC选项,fPIC有什么作用和意义,加不加有什么区别,这里做下小结: fPIC的全称是 Position Independent Code, 用于生成位置无关代码。什么是位置无关代码,个人理解是代码无绝对跳转,跳转都为相对跳转。 1、不加fPIC选项 即使不加fP 阅读全文
posted @ 2019-01-03 20:56 feng..liu 阅读(15897) 评论(1) 推荐(0) 编辑
摘要: 1. 库的介绍 库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a、.lib)和动态库(.so、.dll)。 wind 阅读全文
posted @ 2019-01-03 20:51 feng..liu 阅读(1216) 评论(0) 推荐(0) 编辑
摘要: 1.预处理 此阶段主要完成#符号后面的各项内容到源文件的替换,往往一些莫名其妙的错误都是出现在头文件中的,要在工程中注意积累一些错误知识。 (1)、#ifdef等内容,完成条件编译内容的替换 (2)、#include中内容,在当前目录或者指定目录,或者默认目录搜索头文件,并将头文件拷贝到源文件中。 阅读全文
posted @ 2019-01-03 20:44 feng..liu 阅读(485) 评论(0) 推荐(0) 编辑
摘要: Linux下动态库文件的文件名形如 libxxx.so,其中so是 Shared Object 的缩写,即可以共享的目标文件。 在链接动态库生成可执行文件时,并不会把动态库的代码复制到执行文件中,而是在执行文件中记录对动态库的引用。 程序执行时,再去加载动态库文件。如果动态库已经加载,则不必重复加载 阅读全文
posted @ 2019-01-03 20:31 feng..liu 阅读(16236) 评论(2) 推荐(2) 编辑