gcc的使用简介与命令行参数说明
摘要:(一) gcc的基本用法(二) 警告提示功能选项(三) 库操作选项(四) 调试选项(五) 交叉编译选项 (一) gcc的基本用法使用gcc编译器时,必须给出一系列必要的调用参数和文件名称。不同参数的先后顺序对执行结果没有影响,只有在使用同类参数时的先后顺序才需要考虑。如果使用了多个 -L 的参数来定
阅读全文
posted @
2019-01-04 14:52
feng..liu
阅读(17914)
推荐(3) 编辑
Makefile $@,$^,$ 作用
摘要:/* main.c */ #include "mytool1.h" #include "mytool2.h" int main(int argc,char **argv) { mytool1_print("hello"); mytool2_print("hello"); } /* mytool1.h
阅读全文
posted @
2019-01-04 14:45
feng..liu
阅读(4462)
推荐(0) 编辑
多个文件目录下Makefile的写法
摘要:1、前言 目前从事于linux下程序开发,涉及到多个文件,多个目录,这时候编译文件的任务量比较大,需要写Makefile。关于Makefile的详细内容可以参考网上流传非常广泛的《跟我一起写Makefile》http://blog.csdn.net/haoel/article/details/288
阅读全文
posted @
2019-01-04 10:31
feng..liu
阅读(3088)
推荐(0) 编辑
makefile中PHONY的重要性
摘要:伪目标是这样一个目标:它不代表一个真正的文件名,在执行make时可以指定这个目标来执行所在规则定义的命令,有时也可以将一个伪目标称为标签。伪目标通过 PHONY来指明。 PHONY定义伪目标的命令一定会被执行,下面尝试分析这种优点的妙处。 1、如果我们指定的目标不是创建目标文件,而是使用makefi
阅读全文
posted @
2019-01-03 21:58
feng..liu
阅读(697)
推荐(0) 编辑
linux编译动态库 fPIC作用
摘要:在生成动态库时,常常习惯性的加上fPIC选项,fPIC有什么作用和意义,加不加有什么区别,这里做下小结: fPIC的全称是 Position Independent Code, 用于生成位置无关代码。什么是位置无关代码,个人理解是代码无绝对跳转,跳转都为相对跳转。 1、不加fPIC选项 即使不加fP
阅读全文
posted @
2019-01-03 20:56
feng..liu
阅读(16061)
推荐(0) 编辑
GCC编译过程与动态链接库和静态链接库
摘要:1. 库的介绍 库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a、.lib)和动态库(.so、.dll)。 wind
阅读全文
posted @
2019-01-03 20:51
feng..liu
阅读(1285)
推荐(0) 编辑
C语言编译各过程
摘要:1.预处理 此阶段主要完成#符号后面的各项内容到源文件的替换,往往一些莫名其妙的错误都是出现在头文件中的,要在工程中注意积累一些错误知识。 (1)、#ifdef等内容,完成条件编译内容的替换 (2)、#include中内容,在当前目录或者指定目录,或者默认目录搜索头文件,并将头文件拷贝到源文件中。
阅读全文
posted @
2019-01-03 20:44
feng..liu
阅读(495)
推荐(0) 编辑
Linux动态库生成以及调用
摘要:Linux下动态库文件的文件名形如 libxxx.so,其中so是 Shared Object 的缩写,即可以共享的目标文件。 在链接动态库生成可执行文件时,并不会把动态库的代码复制到执行文件中,而是在执行文件中记录对动态库的引用。 程序执行时,再去加载动态库文件。如果动态库已经加载,则不必重复加载
阅读全文
posted @
2019-01-03 20:31
feng..liu
阅读(16337)
推荐(2) 编辑
多文件目录下makefile文件递归执行编译所有c文件
摘要:首先说说本次嵌套执行makefile文件的目的:只需make根目录下的makefile文件,即可编译所有c文件,包括子目录下的。 意义:自动化编译行为,以后编译自己的c文件时可把这些makefile文件直接复制到相应目录即可方便编译出所有文件。这些makefile文件是通用的,只需根据自己的工程情况
阅读全文
posted @
2018-12-21 11:08
feng..liu
阅读(5139)
推荐(1) 编辑
Makefile所有内嵌函数
摘要:一、文本处理函数以下是GNU make内嵌的文本(字符串)处理函数。1 $(subst FROM,TO,TEXT)函数名称:字符串替换函数—subst。函数功能:把字串“TEXT”中的“FROM”字符替换为“TO”。返回值:替换后的新字符串。示例:$(subst ee,EE,feet on the
阅读全文
posted @
2018-12-17 09:43
feng..liu
阅读(1760)
推荐(0) 编辑
“=” “:=” 区别
摘要:1、“=” make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。看例子: x = foo y = $(x) bar x = xyz 在上例中,y的值将会是 xyz bar ,而不是 foo bar 。 2、“:=” “:=”表示变量的
阅读全文
posted @
2018-12-16 18:25
feng..liu
阅读(1115)
推荐(0) 编辑
交叉编译和交叉工具链
摘要:一、交叉编译简介 1、什么是交叉编译 1.1 本地编译 解释什么是交叉编译之前,先要明白一个概念:本地编译 我们之前常见的软件开发,都是属于本地编译:在当前的PC下,x86的CPU下,直接编译出来程序,可以运行的程序(或者库文件),其可以直接在当前的环境,即x86的CPU下,当前电脑中,运行。 此时
阅读全文
posted @
2018-12-16 15:44
feng..liu
阅读(2899)
推荐(0) 编辑